lien vers l'article sur le médium
Consultez l'article pour en savoir plus sur le concept et également la mise en œuvre.
Clean Architecture est une solution d'architecture logicielle pratique du légendaire Robert C. Martin (alias «Oncle Bob»). En appliquant des règles universelles de l'architecture des logiciels, vous pouvez considérablement améliorer la productivité des développeurs tout au long de la vie de tout système logiciel.
Pourquoi maximiser le nombre de décisions non prises? !! En tant que développeurs, nous savons par expérience que les cadres que nous choisissons au début du projet (bases de données ou cadres Web, etc.) sont difficiles à remplacer au cours de la durée de vie du projet et c'est dû au couplage serré et à beaucoup d'autres décisions précoces, l'une des erreurs courantes est que nous construisons notre projet en fonction de ces cadres et que nous permettons de la logique courante autour d'eux. La réponse est que nous devons construire une architecture qui permet le changement, oui je souligne le changement. Changement des composants bas et des cadres sans frapper la logique centrale et les composants de haut niveau.
Le modèle souligne que chaque projet logiciel est construit en seulement deux éléments la politique et les détails. La politique (composants de haut niveau) est au cœur du système logiciel qui comprend toutes les règles commerciales, toutes les entités et tout ce qui fait une identité unique à ce logiciel. Comme une entité client ou une action de paiement dans une plate-forme de commerce électronique. Le détail (composants de niveau inférieur) est des moyens que les humains puissent interagir avec les règles métier, les modèles les nomment comme des appareils IO, des bases de données, des serveurs Web, etc. comme un bouton de cachote qui déclenche la règle commerciale correspondante ou persistant cette entité client dans une base de données ou un fichier ou tout mécanisme de persistance.
L'objectif final du schéma est de séparer les composants de haut niveau des composants de bas niveau et d'essayer de les faire travailler ensemble et de rendre un niveau de haut niveau des changements de détails. Permettez-moi de rendre cette idée concrète dans votre esprit par quelques exemples. Imaginez un logiciel construit sur une base de données relationnelle comme MySQL et utilise Express JS comme serveur Web, puis après un an, les parties prenantes introduisent de nouvelles exigences et fonctionnalités incompatibles avec la base de données relationnelle et nécessitent une base de données NOSQL. Si la mise en œuvre des logiciels suit une bonne architecture avec un couplage lâche entre les composants, vous n'avez pas besoin de faire la révolution avec des changements. Il est assez facile de remplacer la base de données ou le serveur Web ou tout autre détail du logiciel qui correspond à la solution sans affecter les règles métier et les composants de niveau supérieur.
Oncle Bob met l'accent sur les principes solides intégrés avec un modèle d'architecture propre pour former une solution logicielle lisible, maintenable, évolutive et facile.