Souvent, lorsque je commence un nouveau projet, je commence par ce que je crois être la meilleure des intentions en termes de structure du code. J'adore l'idée de nombreux petits modules qui fonctionnent bien, qui sont découplés des autres parties de la base de code et qui pourraient être réutilisés par moi-même dans d'autres projets (similaires) ou ouverts pour que d'autres puissent en profiter.Une base de code simple mais monolithique vs de nombreuses dépendances clairement documentées
Cependant, la semaine où je cherche à mettre en production quelque chose, il y a eu plus d'une occasion où la complexité de la gestion de ces différents modules s'est avérée trop lourde (malgré une bonne documentation et méthodologie de déploiement). À cette époque, j'ai simplement changé de tactique et regroupé tous les modules dans un même référentiel, ce qui signifie que je peux tout suivre à travers différentes branches, déployer dans des environnements de test et de test, etc ...
Quels sont les avantages et les inconvénients de ces différentes approches, et comment gérez-vous le travail d'une manière ou d'une autre?
Avantages d'une base de code monolithique:
- Facile à déployer
- Facile à rollback
- Facile à ramifier/gérer tous les changements ensemble
- Non (ou moins) dépendances potentiellement complexes à documenter et gérer
Avantages des dépendances modulaires:
- réutilisabilité
- l'architecture propre (un module fait une chose bien)
Bon commentaire. Vous avez raison, il y a un terrain d'entente ici, et peut-être que je suis trop noir et blanc. –