Рубріки: ДосвідДумка

Local-first dev environments

Володимир Рожков

Найбільше мене бісить, коли код проєкту неможливо запустити локально.

Коли є мільйон залежностей, кафки-х**фки, редіси-х**діси, бридка трійця S3/SQS/SNS, мерзенний OAuth 2.0 та інша «шляпа», яка не запускається або складно запускається на вашому комп’ютері.

Коли для підйому адмінки проєкту над яким ти працюєщ тобі пропонують докер композ на більше рядків ніж сорци кожного мікросервісу, з яких він складається.

Коли їхав мікросервіс через стаб і моком поганяв, а половина тестових даних складені в YAML-файли, які останній раз оновлювалися за першого коміта у той мікросервіс.

Коли на старті проєкту лід видає тобі вагон кредів та інструкцій де отримати ще вагон кредів щоб потім захардкодити їх в дотенв-файлі.

Коли тобі пропонується піднімати на ноуті, прости Г-ди, кубернетіс.

Найцікавіше, що для спрощення розробки міленіали придумали мейнфрейми з тонкими клієнтами — ваш код запуститься на потужному кластері десь в клауді, а ви зі свого IDE будете давати команди. Дуже круто, дякую.

Один з найабсурдніших стартапів минулих років це Mightyapp.

«Mighty makes Google Chrome faster & use 10x less memory. Mighty speeds up Chrome on your laptop by streaming it from a more powerful computer in the cloud — that makes your browser & other apps run significantly faster».

Просто вдумайтесь, браузер(!) в клауді(!!!)! Ідея звісно не полетіла і фаундер запівотився (хоча це не назвеш півотом) в AI-генерацію логотипів та дизайнів.

Зважаючи на те, що лептопи та десктопи розробників зараз набагато потужніші ніж ті крихти vCPU, які нам відсипає гіпервізор за вказівкою Безоса, склалась просто ганебна ситуація. І ми самі себе в неї загнали.

E2E тести, які проганяються по ночам, тому що «тест suite займає дві години», забивають ще один цвях у труну продуктивності. Як щодо того, що запустити їх локально? Ой, не можна? А як мені тоді продебажити тест, що падає?

Проєкт має збиратися та запускатися локально без усіх цих «хоботів». Цикл read-evaluate-print має бути настільки коротким, наскільки це можливо.

Зовнішні залежності мають бути мінімізовані. Звісно, за роки роботи працьовиті міленіали навигадували різних стабів для хмарних сервісів, типу DynamoDB Local. Але менше ж з ним — відсутня залежність ліпша за стаб.

Хотів би вам дати пораду сьогодні подивитися на свій стек та викинути щось, але я знаю що ви з більшим задоволенням додасте ще один мікросервіс та ще одну клаудну «шляпу» від Amazon. Тому насолоджуйтесь роздуванням complexity. Ми, інженери кодери, це любимо.

Без порад.

Цей текст взято з особистого блогу після отримання дозволу автора.

Якщо ви знайшли помилку, будь ласка, виділіть фрагмент тексту та натисніть Ctrl+Enter.

Останні статті

Алгоритми консенсусу майбутнього: DAG, BFT, DPoS

Алгоритм консенсусу – це серце будь-якого блокчейна. Саме він визначає, хто і як записує нові…

12.08.2025

CSR у Next.js. Як працює і що у нього під капотом

Зайшов на сторінку, а там — спінери, skeleton і порожнеча? Це не баг, це —…

31.07.2025

Чому я пишу про факапи?

Таке запитання мені поставив мій знайомий, коли побачив мій профіль. Я настільки над цим задумалась,…

30.07.2025

Як налаштувати штучний інтелект з унікальною базою знань? (безкоштовно)

Нещодавно я вписався в один цікавий проєкт. Довелося розібратись з процесом звітності американських фармацевтичних компаній…

29.07.2025

Одного разу я сильно посварився з СЕО компанії або Коли треба вчасно зупинитися і вміти сказати «ні»

Одного разу я сильно посварився з СЕО компанії. Він кричав на мене, а я у…

28.07.2025

Навіщо тестові, коли є портфоліо?

Одразу два офтопи: Я також виконувала тестові; Тестове має бути коротким, чітким, і, бажано, оплачуваним.…

25.07.2025