Accueil > professional > Camel case: comment gérer les acronymes et abréviations en majuscules ?

Camel case: comment gérer les acronymes et abréviations en majuscules ?

[Article also available in English.]
Rapide article à propos d’un sujet qui s’est présenté plusieurs fois dans l’équipe: les acronymes doivent ils rester en majuscules lorsqu’ils font partie d’un nom en camel case ? Autrement dit, faut il écrire XMLFileName ou XmlFileName ?

Pareillement, que faire des abréviations? Si un composant concerne le Front Office, et que ce même Front Office est souvent référé en tant que FO (ou Fo), ce composant doit il être nommé FoFileName ou FOFileName ? Et un autre SomeDataFODisplay ou SomeDataFoDisplay ?

Bon, je l’avoue, ça parait un peu inutile comme discussion. On développe des logiciels, le choix des noms n’est pas forcément le plus critique. Ceci dit, avec Eclipse et son auto complétion prenant en compte le camel case, comme le dialogue d’ouverture de type, il est requis de savoir quelle est la convention retenue. Aussi, il suffit de se mettre d’accord au niveau de l’équipe et, à priori, basta.

Ceci dit, nous ne nous sommes pas penchés pleinement sur le sujet, vu qu’il est limite accessoire, et la solution retenue, frisant l’arbitraire, n’a convaincu personne. Aussi, je me suis dit que je devrai creuser un poil le sujet 🙂

Aussi, armé d’un redoutable éditeur de code, voici ce que je constate:

  • tout garder en majuscules:
    + colle au plus près des acronymes. C’est XML et pas xml après tout.
    – devient illisible quand des acronymes sont combinés. FOXMLRMIConfig est plutôt confus par exemple.
    – inapproprié pour les noms de variables. Comment gérer le commun « private Foo foo » ? Aller pour « private FOXMLData FOXMLData » ? Arg. « private FOXMLData fOXMLData » ? Encore pire ! « private FOXMLData foXMLData » ? Un peu mieux, mais toujours pas génial AMHA.
  • ne garder que la première lettre en majuscule:
    + les noms de variables deviennent naturels. « private FoXmlData foXmlData » a tout simplement l’air comme il devrait être.
    + Peut être combiné à volonté. FoXmlRmiConfig est lisible.
    – étrange au premier regard. Comme dit plus haut, c’est HTML et PDF, pas Html et Pdf !

Aussi, il semblerait que ne garder que la première lettre en majuscule soit la bonne solution.

Vu que je ne voulais pas ignorer l’état de l’art, j’ai essayé de trouver des recommandations officielles sur le sujet. Ma pêche a été maigre, seul Microsoft en fourni sur le sujet, à la page Capitalization Conventions, dans le paragraphe « Capitalization Rules for Acronyms ».

En quelque mots, le contenu peut être traduit et résumé à:

  • Abréviations:
    ne pas en utiliser sauf pour ID et OK, qui « dans des identifiant Pascal-cased devraient apparaitre en tant que Id et Ok. Utilisés en tant que premier mot d’un identifiant camel case, ils devraient apparaitre en tant que id et ok. »
  • Acronymes:
    – si longs de 2 caractères: les laisser en majuscules, « excepté pour le premier mot d’un identifiant camel case ». Ce qui veut dire d’écrire « private IOFile ioFile ».
    – si plus de 2 caractères, ne garder que la première lettre en majuscule, excepté pour le premier mot d’un identifiant camel case. Ce qui revient à « private XmlFile xmlFile ».

Cette règle des 2 caractères m’a pas mal surpris en fait. Cela peut sans doute aider à satisfaire tout le monde, ceux pour le tout majuscule et ceux pour l’autre option. Ceci dit, je trouve cela un peu exagéré. Et, franchement, « private DBXml dbXml » ne me semble pas des plus naturels.

Si vous avez la version Java/Sun/Oracle sur le sujet, je suis preneur 🙂

Au final, cette règle des 2 caractères me semble bien superflu. Perso, je reste sur la règle du « seule la première lettre en majuscule ».

Je suis preneur de toute opinion différente.

Allez, suffisamment dit (voir trop) sur le sujet: direction dodo !

++
joseph

Publicités
Étiquettes : , , ,
  1. décembre 21, 2010 à 1:51

    Version Java :

    « Except for variables, all instance, class, and class constants are in mixed case with a lowercase first letter. Internal words start with capital letters. Variable names should not start with underscore _ or dollar sign $ characters, even though both are allowed.

    Variable names should be short yet meaningful. The choice of a variable name should be mnemonic- that is, designed to indicate to the casual observer the intent of its use. One-character variable names should be avoided except for temporary « throwaway » variables. Common names for temporary variables are i, j, k, m, and n for integers; c, d, and e for characters.  »

    http://www.oracle.com/technetwork/java/codeconventions-135099.html#367

    En gros : seule la première lettre en majuscule

    • février 3, 2011 à 3:43

      Je n’avais pas trouvé le paragraphe (ni la page) l’époque, honte à moi et merci beaucoup.

      La recommandation officielle colle donc à ma conclusion, cool 🙂

  1. No trackbacks yet.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :