-
MVC & gestion de données
Bonjour.
Avec un collègue on développe un petit logiciel de gestion de stock en essayant de suivre le modèle MVC.
On a pris le parti de gérer les transactions (commit, rollback...) directement dans
des managers, qui font le liens entre la BDD et les Controller.
Comme on peut faire appel à plusieurs méthodes pour une seule opération (par exemple, la création d'un employé insère des données dans les tables adresses, téléphones, etc....) on a une sorte de super manager qui contrôle la réussite de toutes les méthodes et qui commit une fois toutes les opérations réussies (ou rollback si échec).
Par principe, est-ce que c'est la méthode usuelle ? ou est-ce que c'est le controller qui doit s'en charger? ou bien aurait-on dû tout gérer dans des grosses procédures directement dans la BDD? :roll:
L'appli est quasi terminée, tout roule, mais j'aimerai bien savoir comment tout ça est gérer quand on travaille de manière professionnelle, pour ma culture perso.
Pour info, on est tout les 2 développeurs jeunes diplômés depuis peu, et l'entreprise pour laquelle on développe le projet n'a pas d'autres développeurs.
Merci pour vos réponses.
-
Bonjour,
Au risque de ne pas répondre précisément à la question, je dirais que la meilleure implémentation de MVC est celle qui correspondra le mieux aux besoins de l'application.
Sur l'exemple de la gestion des opérations sur une base de données il peut y avoir des implémentations totalement différentes selon ce que réclame l'application.
- Sur une application de gestion de bases de données, les commits seront faits directement par l'utilisateur, donc à partir de la vue.
- A l'opposé, dans une application qui n'utilisera une base de donnée que comme un moyen parmi d'autres de sauvegarder des données, le modèle ne proposera qu'une méthode 'save' qui rendra transparente l'utilisation d'une base de données et encapsulera toutes les interactions avec la base, y compris le commit.
- Enfin on peut imaginer une application qui ne va commiter des opérations que lorsque plusieurs conditions seront réunies : Si un nombre minimum de données modifiées a été atteint, si l'application est dans un état désiré, si les données sont cohérentes du point de vue de l'application, etc... Dans ce cas là, le commit aura sa place dans le contrôleur.
Dans votre cas, le commit des données a l'air dépendant "uniquement" de la réussite des transactions, donc il peut être réalisé à l'initiative du modèle.
-