Bonjour,
J'ai pu voir des sujets ressemblant à ce qui suit mais soit datant d'avant 2007 ou bien sans vraiment de réponses claires.
Dans le cadre de développement d'un projet spring / angular se pose la question de séparation des couches côté projet spring pour lequel il y a quelques débats dans notre équipe de dev (entre un architecte et différents développeurs plus ou moins expérimentés sur le fmk spring).
On voit bien une séparation de couches qui est :
Controller(API) / Service (métier) / DAO (persistance)
mais la séparation ne satisfait pas l'architecte dès que l'on évoque le fait que l'objet manipulé dans les services métiers est la classe construite dans la couche DAO et reflétant la DB. Ce qui en effet a pour conséquence de provoquer un couplage métier <> DAO. Donc si un jour on change la structure des tables (split d'une table en 2, déplacements de données de santés vers autre DB, ...) cela induit une modification des classes persistantes et donc potentiellement impact côté couche métier.
Pour la partie Controller on a opté pour une utilisation de DTO pour pouvoir maîtriser ce qui est transféré ou non avec la vue (exemple : afficher les données User sans le mot de passe...).
La proposition de l'architecte serait grossomodo, si je prend un simple cas Person, d'en avoir 3 classes :
PersonDTO : classe utilisée pour la manipulation côté Controller
PersonModel : classe utilisée pour la manipulation côté métier
PersonEntity : classe utilisée pour la persistance de données
(les noms ne sont pas forcéments exhaustif mais pour un soucis de compréhension).
De ce fait, chaque couche à sa propre modélisation d'une person et est donc indépendante, il y aura cependant nécessité de faire 2 phases de mapping :
DTO > Model puis Model > Entity (et inversement).
J'aurais donc voulu avoir votre opinion sur ce sujet pour "aider" à trancher.
Qu'est-ce qui fait qu'avec le fmk Spring ou a ce (fort) couplage entre métier et DAO? Alors que durant les développements passés on s'efforçait de bien séparer les couches.
Y a t-il une façon gérer par le fmk pour avoir un faible couplage ?
....
Je ne suis pas forcément claire dans les questions, mais notre but à l'heure actuelle est de savoir si l'on part sur une solution à moitié maison pour un inclure une couche métier totalement indépendante ou bien de partir sur une solution classique avec ce risque de couplage.
Merci d'avance pour vos réponses et votre aide.
Si je n'ai pas été suffisamment clair n'hésitez pas à le faire savoir et je pourrais apporter précisions ou reformulation.
Bonne soirée.
Partager