Часто, когда начинаю новый проект, я начинаю с того, что считаю наилучшими намерениями с точки зрения того, как структурировать кодовую базу. Мне нравится идея многочисленных небольших модулей, которые хорошо выполняют свою работу, отделены от других частей кодовой базы и потенциально могут быть использованы мной в других (похожих) проектах или с открытым исходным кодом, чтобы другие могли ими воспользоваться.
Тем не менее, наступила критическая неделя, когда я действительно пытался внедрить что-то в производство, было не раз, когда сложность управления всеми этими различными модулями оказалась слишком сложной (несмотря на хорошую документацию и методологию развертывания). , В те времена я просто менял тактику и собирал все модули в один репозиторий и управлял всем этим как одной кодовой базой, что означает, что я могу отслеживать все вместе через разные ветви, развертывание в промежуточных и тестовых средах и т.д ...
Каковы преимущества и недостатки этих разных подходов, и как вам удается работать так или иначе?
Преимущества одной монолитной кодовой базы:
- Простота развертывания
- Простота отката
- Простое объединение / управление всеми изменениями вместе
- Нет (или меньше) потенциально сложных зависимостей для документирования и управления
Преимущества модульных зависимостей:
- 1022 * Повторное использование *
- Чистая архитектура (один модуль хорошо делает одно)