Монорепозиторий.
👁 392
У меня есть небольшой опыт работы в компании, где использовался монорепозиторий для всего проекта. И Backend и Frontend находились в одной репе.
Какие плюсы этого подхода? (Важно сказать, что и Backend, и Frontend были написаны на TypeScript):
1. Все находится под рукой и можно использовать шаринг кода между проектами. Общие интерфейсы для фронта и бэка.
2. Единое версионирование. Проще отслеживать совместимость кода.
3. Единая сборка и отсутствие управления зависимостями. Идея в том, что нет необходимости в управлении зависимостями, так как проекты собирается одновременно.
4. Атомарность коммитов. Тут говорится о том, что данная особенность позволяет проще проводить рефакторинг кода.
5. И конкретно специфичный пункт для данного стека и проекта, в том что поддержка осуществлялась двумя фулстек разработчиками. (Возможно это и было основной причиной использования монорепы)
6. Единое код-ревью.
Почему мы отказались от монорепозитория?
1. Раздельная сборка. Фронт собирался около 15 минут, Бэк за 3 минуты. Поэтому, даже простое изменение на Бэке, требовало 15 минут ожидания вместо 3 минут, чтобы выкатить какой-нибудь хот-фикс.
2. Уход от связности кода. Изменение внутренних интерфейсов бэкенда, могло повлиять на сборку фронтенда и наоборот.
3. Уменьшили вес проектов, так как с ростом проекта, выполнение команды git status выполнялось примерно 15 секунд и это был не предел.
4. Уход команды от фулстек-специалистов к разделению на Фронтенд и Бэкенд. Что позволило Бэкенду внедрять дополнительный стек или вовсе перейти на другой язык.
А у вас есть опыт работы с монорепозиторием?
Дополняйте свои плюсы и минусы.
2