Les bonnes pratiques du développeur


Technique

Les bonnes pratiques sont là pour rendre le développement d’une application plus simple. Elles permettent également de formaliser le développement afin de livrer une application stable, maintenable, modulaire et documentée, dans des délais raisonnables.

 

1 ) Conventions PHP

 

Voici quelques conventions basées sur celles de PHP 5.3

Structure :

  • Ne jamais utiliser les short tags (<?, <%, …).
  • Ne pas fermer les fichiers php avec « ?> ».
  • Ne pas utiliser de tabulation mais 4 espaces.
  • Ajouter un espace après chaque virgule.
  • Ne pas mettre d’espace après les parenthèses ouvrantes.
  • Ne pas mettre d’espace avant les parenthèses fermantes.
  • Mettre un espace autour des opérateurs (&&, ==, ||, …).
  • Mettre un espace entre un mot-clé (if, else, for, foreach, while, switch, …) et sa parenthèse.
  • Mettre les accolades à la ligne pour les déclarations des classes, méthodes et fonctions.
  • Mettre l’accolade sur la même ligne qu’une déclaration conditionnelle (if, else, for, foreach, while, switch, …) et la séparer par un espace.
  • Déclarer la visibilité des classes, fonctions, méthodes et variables (public, static, private, protected, …).
  • Utiliser des majuscules pour déclarer des constantes, et utiliser des underscores comme séparateur.

Nommage :

  • Utiliser le camelCase pour les noms de variables, méthodes et fonctions.
  • Utiliser les namespaces pour les classes.
  • Suffixer les interfaces avec « Interface ».
  • Utiliser uniquement des caractères alphanumériques et underscores pour les noms de fichiers.

Documentation :

Une des bonnes pratique de documentation est de mettre la PHPDoc pour toutes classes, méthodes et fonctions.
Il est également important que les classes, variables, méthodes et fonctions soient écrites en anglais. Chaque méthode doit être commentée.

 

2 ) Modèle MVC (Modèle vue contrôleur)

 

L’un des points important à respecter lors du développement d’une application est l’architecture technique du projet. Symfony est basé sur le design pattern MVC dont le principe est de dissocier le modèle de données de la vue et du contrôleur.

Modèle : Représente le comportement de l’application, soit le traitement des données, les interactions avec la base de données.
Vue : Représente l’interface utilisateur, fait la liaison entre l’utilisateur et l’application. Doit uniquement contenir du html.
Contrôleur : Il fait le lien entre le modèle et la vue. Le contrôleur récupère des données via le modèle et les fait afficher par la vue.

L’avantage de Symfony 2 est qu’il impose au développeur de respecter ce design pattern.

 

3 ) Commit

 

  • Commiter le code fréquemment
  • Commiter du bon code

Les commentaires de commit doivent être au format suivant :

[Nom de la branche] Message explicatif #numéro du ticket

 

4 ) Rapport de bug

Les bons rapports de bug sont un point clé au bon déroulement du recettage d’une application. Souvent, le développeur qui doit corriger l’anomalie va passer plus de temps à chercher comment reproduire le bug qu’à le corriger.
Pour éviter ces frustrations de dernière minute, la meilleure solution est d’avoir un rapport de bug contenant les éléments suivants (certains éléments ne sont pas toujours pertinents selon le bug) :

  • L’url de la page où l’erreur apparaît
  • Un screenshot de la page
  • Le scénario utilisateur qui permet de reproduire le bug
  • Le/les navigateurs utilisé(s) et leur version
  • Le système d’exploitation utilisé
  • Dans le cas d’un upload de fichier : le fichier en question
  • Si l’application nécessite d’être connectée : les informations sur l’utilisateur connecté

Ces points clés seront très utiles au développeur pour identifier rapidement d’où vient le problème et ensuite de faire les corrections nécessaires dans les délais les plus brefs.

5 ) Intégration continue

 

L’intégration continue permet d’analyser un projet sur différents points afin de contrôler la qualité du projet qui se définit selon les critères suivants :

  • Le respect des standards
  • L’application est stable
  • L’application est testée
  • L’application est documentée
  • L’application est performante
  • L’application est fonctionnelle

Jenkins est un outil assez générique qui peut gérer des applications créées dans différents langages. Son principe de fonctionnement de base est d’analyser des rapports xml générés par l’application.

La mise en place de l’intégration continue se fait donc en 2 temps :

  • Le développeur met en place sur l’application les outils qui génèrent les rapports (PHPUnit,Phing, PHPcs,etc.)
  • Le développeur configure Jenkins en lui précisant quels fichiers analyser et de quel type ils sont.

Conclusion

 

L’ensemble de ces bonnes pratiques vous permettent d’avoir un projet stable et maintenable par l’ensemble des developpeurs qui interviendront sur le projet.
Un peu de temps sera nécessaire pour assimiler toutes ces pratiques, mais vous allouera un gain de temps considérable en phase de maturation du projet (recette, debug, …).

Laisser un commentaire