Convention de nommage des projets

56 views
Skip to first unread message

oli

unread,
Sep 10, 2012, 9:49:22 AM9/10/12
to lescast...@googlegroups.com
Bonjour à tous,

Je lance ce sujet afin d'avoir vos avis / pratiques concernant vos conventions de nommage de projets.

Ma question est spécifique au découpage interfaces / implémentations.

J'ai pour habitude de nommer mes projets comme ceci :

- project-api : pour les interfaces
- project-impl : pour les implémentations de base

Je ne trouve pas cela très parlant. En effet, pour les objets j'utilise plutôt :
- Object pour l'interface
- DefaultObject : pour l'implémentation de base

Je pensais changer le nom de mes projets d'implémentations par : project-core. Qu'en pensez-vous ?

Merci d'avance et @+

Vincent Massol

unread,
Sep 10, 2012, 9:54:56 AM9/10/12
to lescast...@googlegroups.com
Salut,

On Sep 10, 2012, at 3:49 PM, oli <omei...@gmail.com> wrote:

> Bonjour à tous,
>
> Je lance ce sujet afin d'avoir vos avis / pratiques concernant vos conventions de nommage de projets.
>
> Ma question est spécifique au découpage interfaces / implémentations.
>
> J'ai pour habitude de nommer mes projets comme ceci :
>
> - project-api : pour les interfaces
> - project-impl : pour les implémentations de base

Sur XWiki on a quasi pareil:

-api
-default quand il n'y a qu'une implem
-<qualififcatif de l'implem 1>,... -<qualififcatif de l'implem N> quand il y a plusieurs implementations

> Je ne trouve pas cela très parlant. En effet, pour les objets j'utilise plutôt :
> - Object pour l'interface
> - DefaultObject : pour l'implémentation de base

Pareil. Avec Qualificatif plutot que Default s'il y a plusieurs implem et Deffault quand meme si la notion d'implem par defaut a un sens.

> Je pensais changer le nom de mes projets d'implémentations par : project-core. Qu'en pensez-vous ?

Core a bcp de significations. Perso je voterais -1 pour project-core :)

-Vincent

>
> Merci d'avance et @+
>
> --
> Vous recevez ce message, car vous êtes abonné au groupe Google Groupes lescastcodeurs.
> Cette discussion peut être lue sur le Web à l'adresse https://groups.google.com/d/msg/lescastcodeurs/-/O1b-DBnOZekJ.
> Pour envoyer un message à ce groupe, adressez un e-mail à lescast...@googlegroups.com.
> Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse lescastcodeur...@googlegroups.com.
> Pour plus d'options, consultez la page de ce groupe : http://groups.google.com/group/lescastcodeurs?hl=fr

Emmanuel Lécharny

unread,
Sep 10, 2012, 10:11:59 AM9/10/12
to lescast...@googlegroups.com
Le 9/10/12 3:49 PM, oli a écrit :
> Bonjour à tous,
>
> Je lance ce sujet afin d'avoir vos avis / pratiques concernant vos
> conventions de nommage de projets.
>
> Ma question est spécifique au découpage interfaces / implémentations.

Pas simple...
>
> J'ai pour habitude de nommer mes projets comme ceci :
>
> - project-api : pour les interfaces

+1

> - project-impl : pour les implémentations de base

Hmmm... Une implémentation est généralement "typée", donc elle a un nom.

Par exemple, nous, pour les implementations de BTree que l'on utilise,
on a :
xdbm-partition (mais ça devrait être btree-api, sauf que c'est un nom
historique, et qu'on se le garde à cause de l'existant) et ensuite des
implémentations :

avl-partition
jdbm-partition

etc.
>
> Je ne trouve pas cela très parlant. En effet, pour les objets j'utilise
> plutôt :
> - Object pour l'interface
> - DefaultObject : pour l'implémentation de base

C'est un débat qui risque de tourner à la guerre de religion ;) Je ne
crois pas qu'il y ait une bonne solution. On est passé par :
o ITest pour les interfaces et Test pour la class, mais on n'est plus en
train d'écrire des applications en notation hongroise...
o puis on a décidé que les interface s'appelleraient toutes Test (sans I
devant, quoi), et il nous restait à choisir entre :
* TestImpl
* DefaultTest
* BaseTest
pour les implémentations. Finalement, on a choisi DefaultTest pour
l'implem par défaut et chaque implem spécifique a un nom qui lui est
propre et qui la caractérise.

Perso, je trouve que c'est un bon compromis, et en plus, c'est raccord
avec ce que tu proposes :)

>
> Je pensais changer le nom de mes projets d'implémentations par :
> project-core. Qu'en pensez-vous ?

Core, ça veut pas dire grand chose... Si c'est l'implem par défaut,
pourquoi pas project-default ?
Ou bien project-spi ?

--
Regards,
Cordialement,
Emmanuel Lécharny
www.iktek.com

Laurent Forêt

unread,
Sep 10, 2012, 10:21:28 AM9/10/12
to lescast...@googlegroups.com
Moi j'aime bien suffixer (plus facile pour la recherche et pour le classement dans les docs ):

Object (pour l'interface)
ObjectImpl (pour l'implémentation)
ObjectDefault (pour l'adaptateur qui peut être abstrait)
ObjectBuilder (pour le pattern …)
ObjectFactory (pour le pattern …)
ObjectDAO (pour le pattern …)
ObjectVisitor ()
ObjectManager 
ObjectService (Interface du service métier)
ObjectEvent
ObjectForm
ObjectPanel
ObjectWS
… 

Et si je veux mettre tout ou partie dans un même fichier ça devient : 
Object$Impl 
Object$Default 
Object$Builder 
Object$Factory 
Object$DAO 
Object$Manager 
Object$Service …


pour les modules comme pour les classe si je connais qu'une implémentation possible je suffixe par "impl" sinon je suffixe par un petit nom discriminant. 


Laurent Forêt
http://www.devcoop.fr


2012/9/10 Vincent Massol <vin...@massol.net>

Laurent Forêt

unread,
Sep 10, 2012, 10:24:56 AM9/10/12
to lescast...@googlegroups.com


2012/9/10 Emmanuel Lécharny <elec...@gmail.com>
project-core est au métier ce qu'est project-util à la technique : un fourre tout.
 


--
Regards,
Cordialement,
Emmanuel Lécharny
www.iktek.com
--
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes lescastcodeurs.
Pour envoyer un message à ce groupe, adressez un e-mail à lescastcodeurs@googlegroups.com.
Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse lescastcodeurs+unsubscribe@googlegroups.com.

oli

unread,
Sep 11, 2012, 6:33:03 AM9/11/12
to lescast...@googlegroups.com
Merci pour vos réponses.

J'ai du mal avec project-default car on ne voit pas tout de suite qu'il s'agit uniquement d'implémentations
(pour project-core aussi du reste...)
Reply all
Reply to author
Forward
0 new messages