Mise à jour de 'source/part-1-workspace/maintainable-applications/clean_architecture.adoc'
continuous-integration/drone/push Build is passing Details

This commit is contained in:
Fred 2021-07-30 15:51:39 +02:00
parent be9179b851
commit 0224c6c35b
1 changed files with 33 additions and 0 deletions

View File

@ -28,3 +28,36 @@ Une architecture ouverte et pouvant être étendue au travers de plug-in na d
développement est suivi et que les gestionnaires (et architectes) sengagent à économiser du temps
et de la qualité lorsque des changements seront demandés pour lévolution du projet.
==== Considération sur les frameworks
[quote]
----
Frameworks are tools to be used, not architectures to be conformed to.
Your architecture should tell readers about the system, not about the frameworks you used in your system.
If you are building a health care system, then when new programmers look at the source repository,
their first impression should be, « oh, this is a health care system ».
Those new programmers should be able to learn all the use cases of the system,
yet still not know how the system is delivered.
-- Robert C. Martin, Clean Architecture, page 199
----
Le point soulevé ci-dessous est qu'un framework n'est qu'un outil, et pas une obligation de structuration.
L'idée est que le framework doit se conformer à la définition de l'application, et non l'inverse.
Dans le cadre de l'utilisation de Django, c'est un point critique à prendre en considération: une fois que vous aurez fait
ce choix, vous aurez extrêmement difficile à faire machine arrière:
- Votre modèle métier sera largement couplé avec le type de base de données (relationnelle, indépendamment
- Votre couche de présentation sera surtout disponible au travers d'un navigateur
- Les droits d'accès et permissions seront en grosse partie gérés par le frameworks
- La sécurité dépendra de votre habilité à suivre les versions
- Et les fonctionnalités complémentaires (que vous n'aurez pas voulu/eu le temps de développer) dépendront
de la bonne volonté de la communauté
Le point à comprendre ici n'est pas que "Django, c'est mal", mais qu'une fois que vous aurez défini la politique,
les règles métiers, les données critiques et entités, et que vous aurez fait le choix de développer en âme et conscience
votre nouvelle création en utilisant Django, vous serez bon gré mal gré, contraint de continuer avec.
Cette décision ne sera pas irrévocable, mais difficile à contourner.
Ceci dit, Django compense ses contraintes en proposant énormément de flexibilité et de fonctionnalités
*out-of-the-box*, c'est-à-dire que vous pourrez sans doute avancer vite et bien jusqu'à un point de rupture,
puis revoir la conception et réinvestir à ce moment-là, mais en toute connaissance de cause.