TGViewer
ИндиПетр ИндиПетр @startupetr · 68 subscribers
Post #111 350
Когда я работал в Ozon, меня там научили, что в каждом уважающем себя проекте должно быть очень много микросервисов, каждый из которых живёт в своём отдельном git-репозитории. Касательно фронтенда — каждый сайтик и дашборд обязательно лежат отдельно.

Тогда мне казалось, что это единственный верный путь организации кода. Я сидел за ноутом на работе и с гордостью переключался между четырьмя (а то и больше) открытыми окнами IDE, в каждом из которых жил свой микросервис. И все они вместе были нужны только для того, чтобы протестировать одну маленькую фичу, которую я делал в тот момент.

Я не смел спорить с этими догматами и пронёс этот подход сквозь годы. И вот, когда я решил делать свои инди-проекты, то решил, что всё буду строить так, как меня учили.

Завёл отдельные репозитории под сайт, под расширение, под бэкенд и, конечно же, под инфраструктуру — чтобы был, так сказать, IaaC. Но довольно быстро я радостно обнаружил, что секреты теперь нужно прописывать везде отдельно; что, чтобы просто начать рабочий день, надо открыть всё те же четыре окна IDE и пощёлкать кнопки run в правильном порядке. А во время работы постоянно метаться между этими окнами и тратить ментальные ресурсы на вопросы: «А где то, что мне сейчас нужно? Кстати, а что именно мне нужно?».

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

Решение нашлось довольно очевидное — монорепа.

Я засунул все репы (приложения), связанные одним проектом (например, для chatgptsheet это сайт, бэкенд и расширение, как я уже говорил выше), в одну.

Теперь запускаю только одно окно GoLand — его хватает для работы и с Go, и с Python, и с JS/TS. Когда делаю поиск в IDE — он сразу ищет по всем файлам проекта. С помощью npm workspaces переиспользую ts/js-код между сайтом и расширением. Секреты теперь прописываю в одной репе — для этого я нашёл очень удобный инструмент Doppler. А для запуска кода и скриптов использую Turborepo. В принципе, он умеет ещё дофига всего, но пока я использую его в роли запускатора тасок.

P.S. Теперь я продуктивнее и чуть счастливее! Если интересно, могу рассказать подробнее про Doppler или Turborepo.
  • 👍 6
  • ❤ 1
  • 🔥 1
  • 😁 1
More from @startupetr
  1. Sep 18, 2025Иногда ошибки в js приводят к забавным результатам. https://redocly.com/
  2. Aug 22, 2025Secret management Часть жизни бэкенд-разработчика — это работа с секретами. Ключи к сторон…
  3. Aug 8, 2025Распорядок дня Вот уже два месяца прошло с тех пор, как я перебрался в Питерочек. За это в…
  4. Aug 1, 2025Чужие мысли Я хотел поделиться с вами одним наблюдением и поразмышлять. Я заметил, что люд…
  5. Jul 22, 2025Водичка Последние две недели я пил только воду. Ни чая, ни кофе, ни лимонадов — одна вода…
  6. Jul 14, 2025Что я хотел бы знать в свои 20 На прошлой неделе мне, совершенно неожиданно, исполнилось 3…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →