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