tema / dev notes.
38 subscribers
16 photos
30 links
Пишу
Download Telegram
Тру разработчик

Вернувшись на очередной стартап проект, первое, что я встретил это сжатые сроки и отсутствие какой-либо информации, а что вообще надо делать. "Надо сделать сервис, как тут, срок вчера". И раньше, я такое встречал со словами: "Так не должно быть. Нужно описание задач, аналитика, прототип. Где настроенные процессы разработки проектов?". Старался давить это, я ведь разработчик, я пишу код, я не должен додумывать фичи. Я могу все это сделать, но вдруг это не то, потом мне придется все переписывать? И всегда был на стороне разработчиков

Но, вот уже почти год, мы делаем свой стартап, и здесь я также нахожусь на стороне того, кто придумывает и раздает задачи. Помимо того, что мне надо писать код, мне надо придумать фичи, бизнес-план, аналитику, прототип, архитектуру, девопс, дизайн. И заниматься этим всем параллельно оказалось очень тяжело. Но кроме меня никто это не сделает. Мне не нужны в стартапе люди, которым я просто буду расписывать все задачи и они будут как роботы все это писать. Код написать я и сам могу, причем быстрее остальных. Тогда зачем мне нужны люди, которые кроме как стучать по клаве, ничего не умеют?

Вот тогда и сломалась картина: тру разработчик — это тот, к которому ты подходишь и говоришь "Есть вот такая идея, а можешь сделать из него работающий сервис?", а он берет и делает.

Так что если ты гордо говоришь я мидл/сеньор, в следующий раз, когда тебе дают задачу в одну строчку и просят сделать, а ты в ответ "Дизайна не было", "Мне аналитика нужна", "Опиши задачу", подумай тру разработчик ты или крудошлепер 🍟
Please open Telegram to view this post
VIEW IN TELEGRAM
6521
This media is not supported in your browser
VIEW IN TELEGRAM
Microsoft Inshellisense

Утилита, которая дает autocomplete в терминале, поддерживает почти все популярные шелы (я юзаю fish). Очень удобно, что она также показывает документацию к флагам и командам если они есть. Это избавляет от того чтобы писать --help

Ставится через NPM

npm install -g @microsoft/inshellisense


Далее надо запустить сессию через команду is и все готово. На стрелочки выбираем команду, на Tab используем

github
211
Полная типизация фронта и бэка на этапе разработки

Решил начать писать статьи, бестпрактисы и советы по реализации тех или иных вещей. Накопилось достаточно много, так что будет серия постов, а пока пилот. Я думаю, это будет гораздо эффективнее, нежели заливать код, бойлерплейты, так как их все надо поддерживать и большинство из них у меня просто пылятся без апдейтов 😶

telegraph
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Warpgate

Когда пользовался Termius для работы с серверами и у него была одна очень полезная вещь это синхронизация между устройствами, а в платном тарифе и возможность создавать командный проект, чтобы делиться всеми серверами с другими людьми. Очень удобная вещь, избавляет тебя от постоянного добавления новых серверов.

Искал замену и нашел OS аналог — Tabby (tabby.sh). Это терминал, которым удобно управлять и он имеет возможность добавлять SSH подключения до серверов. Плюс его, что можно синхронизировать конфиг между всеми своими устройствами.

И случайно наткнулся на Warpgate от того же разработчика. Софт избавляет тебя от постоянно добавления/удаления SSH ключей на сервер других разрабов и девопсов и все рулиться через центральный прокси

1. Поставил Warpgate
2. Загрузил через Ansible SSH ключи Warpgate на все свои сервера
3. Добавил эти сервера в админку и обьединил их в группы
4. Добавил всю свою команду в админке
5. Теперь твоя команда может подключаться к серверу вот такой командой

ssh 'tema:my-server@warpgate.domain.com' -p 2222


Если надо забрать доступы, то просто запрещаешь пользователю стучаться на нужные тебе сервера

Еще пару плюсов
- Аудит лог всех кто куда и когда подключался на сервер
- Возможность записывать видео, что делает человек на сервере
- Ролевая модель управления доступами
- Доступ на сервер через: пароль, OTP, SSO, SSH ключ
- Возможность выдать временный доступ по тикету на определенное время
41
Попробуем стримы? У меня есть огромный бэклог сложных задач по архитектуре, бэку, девопсу. Хочу попробовать сегодня: надо спроектировать тарифную систему, порисуем схемы, пообсуждаем 🤓

Где удобнее смотреть? В телеграме или на твиче
Please open Telegram to view this post
VIEW IN TELEGRAM
4
Где проводить стрим
Anonymous Poll
31%
Телега
69%
Твич
Общаемся, проектируем и реализуем тарифную систему

twitch.tv/temzzzz2
2
Скорость или качество I

Сейчас на коленке соберём MVP, бизнес выстрелит, а потом отрефачим!

Слышали такое? Я слышал. И не раз.

Большинство стартапов живёт по этой схеме. Сейчас, в хайп AI, это особенно заметно: конкуренция бешеная, соперничаешь не с локальным городом, а со всем миром. Победит тот, кто сделает быстрее. Ну, и желательно — лучше. Кто первый, того и деньги.

Минус: если продукт выстрелил, а код — хрупкий и костыльный, скорость разработки падает до нуля. Каждая фича превращается в недельную (а то и месячную) эпопею. Баги чинятся дольше, чем пишутся новые фичи. Разрабы выгорают, текучка растёт. Код зависит от конкретных разработчиков, бизнес бесится из-за сроков и бюджета.

Я был на проекте где было 20+ бэкэндеров, только потому что код был настолько легаси, что маленькие баги могли фикситься месяцами. Но если бы продукт не собрали за пару недель, он бы и не выстрелил


С точки зрения разработчика у меня все просто: "Зачем писать за неделю и потом рефакторить шесть, если можно сделать сразу нормально?"

Но с точки зрения продакта всё сложнее: "Если будешь писать шесть недель, а конкурент сделает за одну, то у тебя уже никто ничего не купит".

Да, звучит как очевидное "ищите золотую середину". Но как её найти? Пойти договариваться с заказчиком? Частично да, но не только.

Как я стартую быстро и не тону потом в говнокоде

1. Свой набор шаблонов.
Готовая архитектура, модули, типовые решения (авторизация, роли, уведомления) — ношу из проекта в проект, улучшая на ходу.

2. Собственные библиотеки.
У опытных разработчиков есть чемоданчик с готовыми решениями: пагинация, логгеры, очереди, утилиты, паттерны. Это спасает тонну времени.

3. Мини-проектирование.
Если не умеете продумывать архитектуру прямо в голове — уделите пару часов схемам и документам. Они окупятся сторицей.

4. "Делаю один шаг, думаю на три вперёд".
С опытом понимаешь, где стоит заложить задел на будущее, чтобы не переписывать потом за х10 времени и бюджета.

Я всегда хожу с рюкзаком готовых решений, который можно достать в любой момент под конкретную задачу. Это мой способ и стартовать быстро, и не утонуть в хаосе.

В следующем посте покажу примеры, как эта система работает в реальных проектах.

Ну и да: не доверяйте ИИшкам свои проекты 🤓
Please open Telegram to view this post
VIEW IN TELEGRAM
5
tema / dev notes. pinned «Как мы все приходим к одному и тому же Пообщавшись в разными людьми, которые занимают тимлидские/сеньорские позиции и принимают какие-либо решения в построении архитектуры, заметил, что почти все приходят к одним и тем же паттернам. Начинают серчить ресурсы…»
Мое рабочее место (часть 1)

Попались мне шортсы, где американцы и европейцы собирают себе рабочее место. Покупают Secret Lab продукты, и все классно красиво, не видно ни одного провода. Решил я собрать себе такое, только из того, что есть на Озоне. Расскажу как это вообще.

Оказалось собрать такое очень как непросто. От выбора техники до закупки всякой мелочи, я выбирал очень долго и проектировал каждый этап прежде чем заказать

Стол. Я взял Ergostol. На рынке достаточно много вариантов, так что выбрать легко. Очень много времени я провожу сидя, и приобрел себе стол за которым можно работать стоя, оказалось это удобно, поэтому следующий стол должен быть такой же. Также я искал стол размеров от 150 см в ширину и от 80 см в длину. Если у вас позволяет место, берите от таких размеров. Меньше - хуже. До этого у меня был стол 120х60, по бокам ничего не помещается, в ширину руки уводят клавиатуру к концу стола. Я взял черный матовый цвет, оказалось он очень маркий, но, я думаю решить это большим ковриком. На что стоит обратить внимание
- Размеры стола, для меня идеально 160х80
- Максимальный подъем привода. У меня 120 см, большинству хватит, но если у вас большой рост (у меня 185), то ищите подороже
- Материал, ищите тот который не оставляет следов

Монитор. До этого у меня был LG 23' 1080p 144hz. Я долго работал с двумя мониторами на 23 дюйма, но потом перешел на виртуальные рабочие столы. В какой то момент у меня просто устала рука дергать на тачпаде влево вправо, в день я делаю так по 500 раз если не больше. Решил посмотреть в сторону ультрашироких мониторов. Один из популярных это Samsung Odyssey на 49', но в продаже были OLED, а они не подходят для работы с текстом, да и слишком широкий и дорогой он мне показался. В итоге взял LG UltraWide 37' IPS 4k 144hz по скидке. Из того что было, этот вариант лучше всех был. Сначала не понял и даже хотел вернуть, потом понравилось. В играх все отлично. Обращайте внимание на эти вещи
- Для большого монитора нужен большой стол
- Если вы хотите брать кронштейн, а при маленьком размере стола, вам обязательно нужен кронштейн, смотрите максимальную нагрузку, лучше брать с запасом. У меня монитор 9 кг, кронштейн держит 15 кг
- OLED классный в играх, не очень для работы
- Дюймы, на моем 39' мониторе помещается два окна: браузер и vscode, возьмете меньше у вас влезет только одно широкое окно и придется переключать виртуальные рабочие столы. Если не хотите жертвовать 20% ширины своих окон, то берите 49 дюймов

Кабель менеджмент.
Тут оказалось все проще чем я думал. Я сделал так что у меня со стола выходит один провод в розетку, и в стол заходит витая пара для интернета. Вот вам лайфхак, как скрыть все провода
- Сетевой фильтр мастхев, с помощью него вы сможете все спрятать и вывести один провод из под стола. Я взял от AGNI подороже, техника как никак.
- Берем коробочку, желательно побольше, чтобы влез сетевой фильтр и еще место осталось. Я взял такой. Крепим на саморезы, на скотч даже не пытайтесь
- Берем вот такой набор свистоперделок для кабель менеджмента, не покупайте их по отдельности, там есть все, что нужно
- Если у вас системник, то берем вот такие держатели, есть на ремнях, но я не рискнул. Без этого провода вы не скроете, а если стол еще и поднимается, то провода не дотянутся до монитора и придется все равно покупать. Когда будете крепить, не забудьте оставить расстояние для проводов
- Если у вас розетки выше стола, опускайте, иначе стол вы не поставите вплотную к стене (вообще никогда не ставьте их выше стола, это некрасиво)
7
Мое рабочее место (часть 2)

Периферия.
Тут все просто, чтобы не было проводов покупайте беспроводные клавиатуру, мышь и наушники. У меня мышь и клава коннектятся по радио, а наушники по блютуз. Если у вас отдельный микрофон, берите кронштейн и ведите провод по нему под стол. Кронштейна у меня пока нет, берите подороже, дешевые неудобные. Все становится сложнее, когда у вас ноутбук и ПК и вы хотите использовать периферию и там и там. Для этого есть KVM свичи в которые вы втыкаете клаву, мышь, микрофон, а также ПК и ноут. Далее по кнопке он переводит питания с одного устройства на другой. Одно большое но: у них есть инпутлаг, особенно у дешевых, так что такие даже не смотрите. Я долго искал и нашел на Алиэкспресс KVM свич на 10 гбит, пришел, подключил, все идеально работает. На 5 гбит я читал, что у них имеется инпут лаг, так что решил не брать, по цене кстати одинаково. Боялся, что микрофон не будет работать, но все отлично

IPad.
Я часто рисую схемы софта в excalidraw и очень захотел попробовать делать это на айпаде. На ютубе 0, НОЛЬ, ЗИРО видео, где программисты рисуют схемы на нем, так что вот вам свежий эксклюзив. Айпад полная хрень и не подходит для того, чтобы проектировать сервисы или рисовать какие то сложные схемы.
- Весь софт на айпаде состоит из ручек, кисточек, карандашей, работа с фигурами и стрелками в большинстве приложений либо отсутствует, либо сделано коряво
- Скорость работы заметно ниже, либо же равна скорости работы с компом
- Компании как правило плохо поддерживают свои аппки под айпад версию. Например Miro лагает и не поддерживает детальные настройки объектов, хотя на компе все есть
Единственный плюс айпада - это если у вас лежит душа делать зарисовки, рисовать, создавать конспекты. Он идеален для студентов, художников. Так что пока просто лежит, я ищу ему применение. А ну еще он без проводов может быть вторым монитором для мака

Стена. Подсмотрел у одного автора на ютубе красивые МДФ панели на стену и решил взять такие же. Пошел в стройпарк, увидел ценник, офигел, закрыл. Решил пойти на сайт производителя, там оказалось дешевле и взял 5 штук. Выглядит красиво, создает атмосферу. Брал у Stella вот здесь. Клеили на жидкие гвозди, резали пилой по металлу. Минус, что из-за того что у меня неровный пол и потолок, панели идеально ровно не получилось наклеить но это мелочи. Хочу еще в кухне наклеить такие

Конечно все это вышло мне недешево, даже если не брать в расчет монитор и айпад, но получилось так как я себе это представлял, я избавился от всех проводов, имею одну и ту же периферию между ПК и маком, работаю стоя/сидя. Собрать такое оказалось намного тяжелее, чем это показывают на ютубе, поэтому я написал обзор. Если будут вопросы, пишите в комменты или в личку
10