0

Les conventions de codage du web

normes_web

Bien coder c’est aussi utiliser des règles de développement standardisées.

Des conventions de codage existent pour cela. Des organismes comme PEAR ou W3C fournissent plusieurs recommandations à suivre pour produire du code propre, maintenable et donc évolutif. En effet, une application est vouée à être modifiée un grand nombre de fois pendant son cycle de vie. Dans cet article nous allons traiter uniquement des normes à respecter pour le code lui-même. D’autres aspects des bonnes pratiques de développement comme la mise en place de suites de tests, d’une architecture de projet (MVC…), d’une documentation technique seront abordés dans un prochain article.

1. PHP & Javascript

Dans le domaine du web, le PHP est un langage de scripts côté serveur populaire et très bien implanté.

Les alternatives peuvent être l’ASP(.NET), Ruby, Python. Coté client, c’est le langage Javascript qui est souvent utilisé.

Bien souvent, il existe quelques variations des conventions selon les entreprises ou entre framework (Zend/Symfony). Voici une liste des conventions les plus utilisées qu’il est préférable de respecter en PHP et Javascript:

  • notation camelCase de vos variables, fonctions ou méthodes. Exemple:
    uneVariable = "exemple"; //OK
    une_Variable = "exemple"; //NOK
    function makeCoffee() //OK
    function MakeCoffee() //NOK
    function make_coffee() //NOK
  • indentation par des espaces (2 ou 4 espaces) au lieu des tabulations pour une compatibilité entre les différents éditeurs mais aussi pour ne pas compromettre vos diff SVN/CVS.
  • accolade ouvrante sur la même ligne que votre condition (if, else, foreach …), votre entête de fonction, votre définition de classe. Voici un exemple complet:
    if ((condition1) || (condition2)) {
        action1;
    } elseif ((condition3) && (condition4)) {
        action2;
    } else {
        action3;
    }
  • nom des classes avec la première lettre en majuscule.
    class FooBarClass
  • constantes en majuscule et séparation des mots par un underscore.
    define('MY_CONSTANT', 'foo/bar')
  • membres et méthodes privées d’une classe préfixée par un underscore.
    function _sort() {}
  • les accesseurs aux objets doivent toujours être préfixés par soit “get” et les mutateurs par “set”.

    Note: Les IDE modernes (Eclispe/Netbeans…) permettent de générer les setters/getters.

  • Un fichier php contenant une classe doit porté le même nom que la classe (et respect du camelCase).
  • organisation logique dans vos projets en nommant vos fichiers Javascript en .js, les classes en .class.php, les fichiers destinés à être inclus en .inc.php et éventuellement vos scripts en php version 4 avec l’extension .php4

La plupart de ces conventions sont aussi valables dans les autres langages de programmation comme le Java, C#, C++, etc…

Pour plus d’informations sur des points plus spécifiques des conventions de codage, vous pouvez consulter les sites suivants:

  • PEAR conventions
  • Symfony conventions
  • Zend conventions
  • Pour valider votre code selon les conventions que vous souhaitez respecter, l’outil phpcodesniffer vous sera d’une très grande aide. Il sert à détecter les écarts de conduite dans votre code. Par exemple, une mauvaise indentation ou des espaces superficielles…