• Mes conventions en programmation

    On a tous nos petites habitudes de programmation : quel type d'indentation, où placer les accolades, notation hongroise, espacements...etc.
    Je vais vous présenter les miennes, non pas pour tenter de les imposer (d'ailleurs tout n'est pas forcément bien), mais pour échanger, savoir ce que vous en pensez, et savoir quelles sont les vôtres. Je ne parlerai ici que de l'aspect visuel de la programmation, pas de la structure des fichiers, des frameworks...

    Avant tout, un petit exemple en PHP pour illustrer mes conventions :

    <?php
    $monTableau = array('H', 'e', 'l', 'l', 'o');
    $txt = '';
    $n = 2;
    for($i=0; $i<count($monTableau); $i++){
        $txt .= $monTableau[$i];
        $n = pow($n, 2);
    }
    if($n % (strlen($txt)+1)==0)
        $txt .= ' World';
    echo $txt;
    ?>
    [code=php]<?php
    $monTableau = array('H', 'e', 'l', 'l', 'o');
    $txt = '';
    $n = 2;
    for($i=0; $i<count($monTableau); $i++){
        $txt .= $monTableau[$i];
        $n = pow($n, 2);
    }
    if($n % (strlen($txt)+1)==0)
        $txt .= ' World';
    echo $txt;
    ?>[/code]

    Notation :
    J'utilise la notation lowerCamelCase pour nommer mes variables, fonctions, classes, et méthodes.

    Indentation :
    Tabulation de la largeur de 4 espace.
    Je prends soin de bien indenter tout les blocs. Logique diront certains, mais ce n'est pas le cas partout...

    Accolades :
    Accolade ouvrante à la fin de la ligne de définition de la boucle. Accolade fermante sur une nouvelle ligne, au même niveau que la définition de la boucle.
    Pas d'accolades pour un bloc mono-ligne. (par exemple un if suivi d'une seule instruction).

    Espaces :
    Pour les virgules et les point-virgules : pas d'espace avant, un espace après.
    Pas d'espace entre les noms de fonction et la parenthèse ouvrante. Idem pour les boucles.
    Pas d'espace entre la parenthèse fermante et l'accolade ouvrante dans les boucles.
    Pas d'espace entre le else et le if dans les else if.
    Un espace de part et d'autre des opérateurs de modification (=, +=, *=, ...).
    Pas d'espace pour les opérateurs de comparaison (==, <=, >=) et pour les opérateurs de modification dans les boucles (for, while, if), sauf pour les longues expressions.

    Guillemets
    En php, j'utilise uniquement les guillemets simples (apostrophe), sauf pour afficher des caractères spéciaux (\r, \n ...).
    Dans les autres langages, des guillemets doubles.

    Commentaires
    En moyenne un commentaire mono-ligne toutes les 10 lignes, avant un bloc, pour expliquer ce qu'on fait. Je pense qu'ils sont important pour la compréhension générale du code, mais qu'il ne faut pas en abuser.
    Pas de bloc de 30 lignes au début des pages, au pire 2 ou 3 lignes.

     

    Allez j'ai envie de faire mon chieur, je crée une chaîne ! Je tague divarvel, Darklg, Babozor, et TomClarks qui seront obligés conviés à décrire à leur tour leurs conventions sur leur blog et faire suivre la chaîne


    Tags Tags : ,
  • Commentaires

    1
    Vendredi 11 Juillet 2008 à 22:43
    C'est pas cool, j'ai exactement la même façon de coder à 2/3 choses prêt... Mais bon, je te suis :p
    2
    Vendredi 11 Juillet 2008 à 23:48
    Pas cool xD
    Je fais ça dès que j'ai le temps :)
    Sinon : "for($i=0; $i<count($monTableau); $i++){"
    J'aurais plutot fait :
    "$taille_tableau = count($monTableau);
    for($i=0; $i<$taille_tableau; $i++){"

    Question de performances :)
    3
    Samedi 12 Juillet 2008 à 10:58
    Et foreach, c'est pour les chiens ?
    4
    Samedi 12 Juillet 2008 à 11:02
    Hé Clément, il aurait aussi bien pu faire un echo "Hello World", donc autant aller jusqu'au bout xD
    5
    Samedi 12 Juillet 2008 à 11:57
    Pas faux ^^
    Bon voilà j'ai pondu mon article : ici
    6
    Samedi 12 Juillet 2008 à 19:07
    J'ai suivi ta chaine ;)
    http://blog.tomclarks.net/2008/07/12/268-des-chaines/
    Suivre le flux RSS des commentaires de cet article


    Ajouter un commentaire

    Nom / Pseudo :

    E-mail (facultatif) :

    Site Web (facultatif) :

    Commentaire :