Faire un don ! | | style | statistiques | contactez-nous | plan | lettre d'information

Journal : Convention de nommage code et Bdd

Posté par ginkyo (page perso, ) le 05 janvier 2007
Bonjour,
Je viens vers vous pour récolter quelques expériences de votre part :)
En effet, j'aimerais avoir vos préférences pour le nommage des
- classes
- méthodes ou fonctions
(pê aussi méthodes constructeurs /destructeurs/accesseurs/manipulateurs, héritées)
- champs ou variables

Mettez-vous des str_ma_variable, m_MavariableMembre_string, int_i, Maclasse, maMéthode, chaine_bidule, etc... ?

Et pour vos Bdd :
lib_nom ou nom, ou txt_nom pour un champ varchar,
id, ou id_nom ou num_nom, pour l'identifiant de la table nom
t_table pour une table
TJ_table pour une table en jointure
etc...

Et pour vos formulaires :
chkb_entreprise pour les cases à cocher

Mais tout simplement en nous donnant quelques liens de conventions de nommages utiles, strictes, homogènes, utilisables.

Autrement auriez-vous quelques liens vers des codes sources de projets exemplaires sur ces caractéristiques ?

En vous remerciant



Un seul lien pour le sql :
http://sql.developpez.com/standards/

> Lire le journal (36 commentaires, moyenne: 3,5).  

Vous avez demandé le commentaire #791201.

Notation hongroise

Posté par jjl (page perso, ) le 05/01/2007 à 10:45. (lien). Évalué à 2.

Chez nous pour faire du C on utilise une variante de la notation hongroise
http://en.wikipedia.org/wiki/Hungarian_notation

En plus on prefixe par une lettre representant ce qu'est le nom de variable (ou fonction) : variable externe, globale, fonction, paramètre...

Par exemple E_u8Cpt sera un compteur entier non signé sur 8 bits (u8) déclaré à l'exterieur du fichier courant (E_)
F_pasBuffers sera une variable locale (F_) pointeur (p) sur un tableau (a) de structures (s)

Cela semble un peu compliqué à la lecture mais une fois que tu as bien en tête la notation, ca simplifie énormément la comprehension du code surtout si vous êtes plusieurs à travailler sur le même.

Après il faut adapter la notation aux besoins du projet, tout le monde n'a par exemple pas besoin de differencier les u8, u16 ou u32

  • [^]Re: Notation hongroise

    Posté par Vincent Richard (page perso, ) le 05/01/2007 à 11:14. (lien). Évalué à 6.

    Et ensuite, que se passe-t-il quand tu veux changer le type d'une variable ? ;-)

    • [^]Re: Notation hongroise

      Posté par achil () le 05/01/2007 à 11:52. (lien). Évalué à 1.

      Tu utilises les fonctions de remplacement de ton editeur de code?

      Bon il est important tout de même de ne pas trop modifier ce qui est hors de la fonction dans laquelle tu changes le nom de ta variable.
      Il vaut mieux préférer la méthode du suivant, que du "remplacer tout". :)

    [^]Re: Notation hongroise

    Posté par Krunch (Jabber id, page perso, ) le 05/01/2007 à 11:21. (lien). Évalué à 10.

    C'est un mauvais usage de la notation hongroise. Le préfixe doit refléter l'usage qu'on fait de la variable et non son type (à moins d'être un typedefeur pathologique).
    http://www.joelonsoftware.com/articles/Wrong.html

    --
    Free Softwares Users Group Arlon (Sud Luxembourg, Belgique)
    pertinent, e adj. Approprié ; qui se rapporte exactement à ce dont il est question.

    [^]Re: Notation hongroise

    Posté par Laurent J (page perso, ) le 05/01/2007 à 12:48. (lien). Évalué à 9.

    personnellement, je trouve ta notation vraiment trop horrible et surtout beaucoup trop compliqué.

    Et je ne suis pas sûr que ça m'avancera plus. Là dans ton exemple, c'est un pointeur sur tableau de structure. Mais structure de quoi ? Paf, t'es obligé de chercher dans les sources la déclaration de ladite structure (et bien sûr avant, la declaration de la variable proprement dite pour savoir quelle est le nom de la structure). Donc finalement ça ne résout pas le problème (celui de comprendre tout de suite le type).

    Et pire, dans ton exemple, il y a redondance d'information dans le nom. Si ta variable s'appelle un buffer, on s'attend forcément à une structure ou à un tableau (à priori, tout informaticien sait ce qu'est un buffer). Donc inutile de le préciser dans ton préfixe. en plus, s'agissant d'un pointeur, on va principalement l'utiliser en préfixant par une * à l'usage, donc rien qu'avec ce *, on sait qu'il s'agit d'un pointeur...

    Vaut mieux un nom bien plus explicite. Ici tu dis que c'est un buffer. Mais buffer de quoi ? de carottes ? d'octets ? de paquet tcp ? je trouve qu'un nom comme bufferTcp c'est bien plus parlant.

    Donc finalement F_pasBuffer ne veut absolument rien dire, surtout pour le type qui débarque dans le projet. (oui je sais, tu vas me dire, c'était juste un exemple, mais finalement, il montre bien les incohérences et pièges de ta notation).

    Un bon code source devrait pouvoir se lire le plus naturellement parlant, quitte à avoir des noms longs (ce qui n'est pas un problème grâce à la complétion automatique de code dans les éditeurs)

    entre
    if( (*F_pasBuffer)[0].M_u8sourcePort == 80)...
    et
    if( (*bufferTcp)[0].sourcePort == 80)...

    y a pas photo, je prend le deuxième...

    [^]Re: Notation hongroise

    Posté par André Rodier (page perso, ) le 05/01/2007 à 13:04. (lien). Évalué à 3.


    Cela semble un peu compliqué à la lecture mais une fois que tu as bien en tête la notation, ca simplifie énormément la comprehension du code surtout si vous êtes plusieurs à travailler sur le même.

    Si vous êtes plusieurs a travailler sur le même fichier, n'y aurait-il pas un léger problème de séparation des fonctionnalités ?
    Ou comment on mettre un pansement sur une jambe de bois...

    [^]Re: Notation hongroise, variation sur Coluche

    Posté par André Rodier (page perso, ) le 05/01/2007 à 16:00. (lien). Évalué à 9.

    Le codage hongrois, hongrois qu'on code, mais on code pas...

    • [^]Re: Notation hongroise, variation sur Coluche

      Posté par ola () le 05/01/2007 à 16:08. (lien). Évalué à 7.

      ouaip.

      et quand le management l'apprend, hongrie au scandale.