Revoir un peu la gestion des extensions sur DAO
Salut, Contexte -------- Il est actuellement possible de rajouter des méthodes métiers aux DAO mais je trouve la manière de faire un peu trop lourde et j'aimerai bien la simplifier. Comment on fait actuellement ---------------------------- - Il faut écrire une interface (SpecieDAO) - Y ajouter un stéréotype dao - Ajouter une dépendance nommé dao vers l'entité de rattachement Ce que j'imagine ---------------- Dans la solution actuelle, je trouve ça bien redondant d'écrire deux fois dao (et surtout le vois pas trop à quoi ça sert...). Je verrais bien une simplification en supprimant tout simplement le stéréotype dao qui n'apporte pas grand chose. De plus la liaison dans le sens du dao vers l'entité je trouve ça assez dérangeant... On ajoute bien une extension à l'entité (à son DAO) je préfèrerais vraiment une lien dans l'autre sens. A noter que la deuxième demande nécessite de repasser sur les modèle utilisant ce mécanisme :( mais serait quand même beaucoup plus propre à mon gout car il il irait dans le même sens que d'autres choses faites déjà (pour les constantes en l'occurrence). A vos avis, remarques :) -- Tony Chemit -------------------- tél: +33 (0) 2 40 50 29 28 email: chemit@codelutin.com http://www.codelutin.com
On Tue, 8 Mar 2011 10:37:07 +0100 chemit <chemit@codelutin.com> wrote:
Salut,
Contexte --------
Il est actuellement possible de rajouter des méthodes métiers aux DAO mais je trouve la manière de faire un peu trop lourde et j'aimerai bien la simplifier.
Comment on fait actuellement ----------------------------
- Il faut écrire une interface (SpecieDAO) - Y ajouter un stéréotype dao - Ajouter une dépendance nommé dao vers l'entité de rattachement
Il me semble qu'il y avait une autre facon de faire: - ajouter une méthode stéréotypée(ou tagguée?) dao directement sur l'entité
Ce que j'imagine ----------------
Dans la solution actuelle, je trouve ça bien redondant d'écrire deux fois dao (et surtout le vois pas trop à quoi ça sert...).
Je verrais bien une simplification en supprimant tout simplement le stéréotype dao qui n'apporte pas grand chose.
Moi, je trouve ça important le stéréotype "dao"
De plus la liaison dans le sens du dao vers l'entité je trouve ça assez dérangeant... On ajoute bien une extension à l'entité (à son DAO) je préfèrerais vraiment une lien dans l'autre sens.
Par contre cette liaison, je ne vois pas a quoi elle sert, pour moi, pour la génération y'en a pas besoin, c'est juste un besoin UML ? (pour le lecteur). Ou alors c'est pour savoir quel est le nom du DAO généré au cas ou on permet de mettre un nom dans le modèle différent du nom généré (un peu embêtant si c'est le cas) Mais de toute façon pour moi elle est dans le bon sens pour moi. -- Benjamin POUSSIN -------------------- tél: +33 (0) 2 40 50 29 28 email: poussin@codelutin.com http://www.codelutin.com
On Tue, 8 Mar 2011 10:37:07 +0100 chemit <chemit@codelutin.com> wrote:
Salut,
Contexte --------
Il est actuellement possible de rajouter des méthodes métiers aux DAO mais je trouve la manière de faire un peu trop lourde et j'aimerai bien la simplifier.
Comment on fait actuellement ----------------------------
- Il faut écrire une interface (SpecieDAO) - Y ajouter un stéréotype dao - Ajouter une dépendance nommé dao vers l'entité de rattachement
Il me semble qu'il y avait une autre facon de faire: - ajouter une méthode stéréotypée(ou tagguée?) dao directement sur l'entité
On Tue, 8 Mar 2011 11:22:09 +0100 Benjamin POUSSIN <poussin@codelutin.com> wrote: pouah c'est vraiment crade... et ça pollue bien le modèle Je suis contre cette solution qui n'a d'ailleurs je pense bien jamais existé (sauf peut-être dans tes rêves ?)
Ce que j'imagine ----------------
Dans la solution actuelle, je trouve ça bien redondant d'écrire deux fois dao (et surtout le vois pas trop à quoi ça sert...).
Je verrais bien une simplification en supprimant tout simplement le stéréotype dao qui n'apporte pas grand chose.
Moi, je trouve ça important le stéréotype "dao"
pk ? merci d'un peu étailler les arguments car : moi je pense que ça sert à rien, toi le contraire, avec juste ton petit Moi je trouve ça important, ça risque pas de me convaincre...
De plus la liaison dans le sens du dao vers l'entité je trouve ça assez dérangeant... On ajoute bien une extension à l'entité (à son DAO) je préfèrerais vraiment une lien dans l'autre sens.
Par contre cette liaison, je ne vois pas a quoi elle sert, pour moi, pour la génération y'en a pas besoin, c'est juste un besoin UML ? (pour le lecteur). Ou alors c'est pour savoir quel est le nom du DAO généré au cas ou on permet de mettre un nom dans le modèle différent du nom généré (un peu embêtant si c'est le cas)
Mais de toute façon pour moi elle est dans le bon sens pour moi.
Encore une fois, merci de dire pk ? vu que je pense le contraire...
-- Tony Chemit -------------------- tél: +33 (0) 2 40 50 29 28 email: chemit@codelutin.com http://www.codelutin.com
On 08/03/2011 11:28, chemit wrote:
Il me semble qu'il y avait une autre facon de faire: - ajouter une méthode stéréotypée(ou tagguée?) dao directement sur l'entité
Ce que j'imagine ----------------
Dans la solution actuelle, je trouve ça bien redondant d'écrire deux fois dao (et surtout le vois pas trop à quoi ça sert...). Il me semble que cela permet, dès la génération des DAO de récupérer ceux décris dans le modèle objectModel, et donc récupérer directement les méthodes ainsi que l'entité associé via la dépendance. Je verrais bien une simplification en supprimant tout simplement le stéréotype dao qui n'apporte pas grand chose. Moi, je trouve ça important le stéréotype "dao"
On Tue, 8 Mar 2011 11:22:09 +0100 Benjamin POUSSIN<poussin@codelutin.com> wrote: pouah c'est vraiment crade... et ça pollue bien le modèle Je suis contre cette solution qui n'a d'ailleurs je pense bien jamais existé (sauf peut-être dans tes rêves ?) En fait si, cette solution existait avant ce changement, mais en effet visuellement cela polluait pas mal l'entité d'avoir des méthodes de DAO stéréotypés. Donc personnellement je préfère l'interface à côté. pk ? merci d'un peu étailler les arguments car :
moi je pense que ça sert à rien, toi le contraire, avec juste ton petit Moi je trouve ça important, ça risque pas de me convaincre... Je pense que Ben, voulait dire qu'il est important de garder le marquage de ces interfaces comme étant des DAO pour les différencier d'une simple interface.
assez dérangeant... On ajoute bien une extension à l'entité (à son DAO) je préfèrerais vraiment une lien dans l'autre sens. Par contre cette liaison, je ne vois pas a quoi elle sert, pour moi, pour la génération y'en a pas besoin, c'est juste un besoin UML ? (pour le lecteur). Ou alors c'est pour savoir quel est le nom du DAO généré au cas ou on permet de mettre un nom dans le modèle différent du nom généré (un peu embêtant si c'est le cas)
Mais de toute façon pour moi elle est dans le bon sens pour moi. En fait il y a deux solutions :
- stéréotype mais pas de dépendance : Il faut parcourir d'abord toutes les interfaces avec stéréotype DAO puis toutes les entités, chaque entité qui possède un DAO "déclaré" aurait des méthodes supplémentaires dans celui ci. Cela impose la convention de nommage sur les DAO (MonEntiteDAO) pour être sûr d'etre sur la bonne entité. Heureusement aussi qu'EUGene transforme d'abord les interfaces sinon il aurait fallut 2 passes. - pas de stéréotype mais une dépendance : Un seul parcours, celui sur les entités, si une entité à une dépendance sur une interface dao, elle aura des méthodes supplémentaires. Dans tout les cas, la version actuelle est un peu batarde vu qu'elle fait plus ou moins les deux. Comme quoi je n'avais pas bien réfléchi a cette problématique. Je suis plus pour la 2ème solution, et en ce qui concerne le sens UML on pourrait la décrire par " une entité dépend d'un DAO pour exister" car en effet c'est le DAO qui contrôle son cycle de vie. Cette liaison est implicite pour tous les cas ou des méthodes de DAO ne sont pas nécessaire.
Le 08/03/2011 10:37, chemit a écrit :
Dans la solution actuelle, je trouve ça bien redondant d'écrire deux fois dao (et surtout le vois pas trop à quoi ça sert...).
Ouais, ça me semble aussi redondant. Après, je sais pas lequel il faut garder.
De plus la liaison dans le sens du dao vers l'entité je trouve ça assez dérangeant... On ajoute bien une extension à l'entité (à son DAO) je préfèrerais vraiment une lien dans l'autre sens.
Moi, elle me semble dans le bon sens. Tu spécifies un dao, et avec la flèche tu dis « avec ce DAO, je manipule ce type d'entités » (phrase dans le sens de la flèche). Du coup ça sert à savoir que pour MachinDAO et du coup mettre "Machin" dans "MachinDAO extends TopiaDAOImpl<Machin>". Ce qui permettrait, en changeant la flèche d'avoir "MachinDAO extends TopiaDAOImpl<Truc>" ce qui serait "reggretable". Après faudrait voir la sémantique exacte de cette flèche en UML pour se décider. Je fouillerai. -- Brendan Le Ny <bleny@codelutin.com> Code Lutin Conseil & Développement Logiciel Libre +33 (0)2 40 50 29 28 http://codelutin.com
Le 08/03/2011 15:28, Brendan Le Ny a écrit :
Le 08/03/2011 10:37, chemit a écrit :
Dans la solution actuelle, je trouve ça bien redondant d'écrire deux fois dao (et surtout le vois pas trop à quoi ça sert...).
Ouais, ça me semble aussi redondant. Après, je sais pas lequel il faut garder.
De plus la liaison dans le sens du dao vers l'entité je trouve ça assez dérangeant... On ajoute bien une extension à l'entité (à son DAO) je préfèrerais vraiment une lien dans l'autre sens.
Moi, elle me semble dans le bon sens. Tu spécifies un dao, et avec la flèche tu dis « avec ce DAO, je manipule ce type d'entités » (phrase dans le sens de la flèche). Du coup ça sert à savoir que pour MachinDAO et du coup mettre "Machin" dans "MachinDAO extends TopiaDAOImpl<Machin>". Ce qui permettrait, en changeant la flèche d'avoir "MachinDAO extends TopiaDAOImpl<Truc>" ce qui serait "reggretable".
Après faudrait voir la sémantique exacte de cette flèche en UML pour se décider. Je fouillerai.
Bon, presque 2 mois plus tard, je pense que je n'ai plus aucune légitimité de réponse, mais de tout ce qui a été dit, je suis plutôt d'accord avec Brendan. Pour moi, cette flêche est un "<< use >>". Mais j'avoue que mes souvenirs sur le sujet sont un peu vague :( Pour ce qui est de conserver le stéréotype "dao", je suis pour aussi car cela permet de différencier facilement le DAO des autres interfaces comme l'a souligné Florian. Donc pour moi, je trouve que c'est l'existant qui correspond mieux à ce qu'on veut faire... Ce thread semble avoir été classé "sans suite", qu'en est-il ? Est-ce que quelque chose à été fait ? Arnaud.
participants (5)
-
Arnaud Thimel -
Benjamin POUSSIN -
Brendan Le Ny -
chemit -
Florian Desbois