Éditeur de logiciels libres au service de votre dématérialisation
Télécharger
Maarch Courrier
Télécharger
Maarch RM

Quelques éléments de nos « Best Practices »

clavierL’atelier d’intégration continue sur nos développements PHP permet de superviser en temps réel la qualité du code produit. Cet article vous en dit plus sur nos méthodes de développement.Sérieux et qualité des mots qui ont un sens pour Maarch.

Nous portons une attention particulière sur la qualité du code proposé et nous souhaitions pouvoir l’attester.

L’intégration continue

L’intégration continue est un ensemble de pratiques utilisées en génie logiciel. Elles consistent à vérifier à chaque modification de code source que le résultat des modifications ne produit pas de régression de l’application en cours de développement. Le concept n’est pas nouveau, mais devient un des piliers de ce qui ce réfère généralement à la pratique de l’extreme programming.

Pour appliquer cette technique, il faut :

  • que le code source soit partagé, et que les développeurs intègrent fréquemment leurs modifications,
  • que des tests d’intégration soient développés pour valider l’application.
  • disposer d’un outil d’intégration continue. Nous avons mis en place un serveur d’intégration continue qui fait ces vérifications : JENKINS.

Avantages de cette technique

Les principaux avantages d’une telle technique de développement :

  • les problèmes d’intégration sont détectés et réparés de façon continue
  • le développeur est prévenu rapidement en cas de code incompatible ou manquant
  • les unités modifiées sont testées immédiatement
  • une version est toujours disponible pour test, démonstration ou distribution

La mise en place

ecran_jenkins
Des normes de développements existaient avant le passage en intégration continue, mais cette dernière a permis de renforcer la qualité du code.

Aujourd’hui, lorsqu’un ingénieur « dépose » du code dans le gestionnaire de source, des contrôles sont effectués, comme les tests unitaires par rapport à des scénarii conçus au moment du codage.

JENKINS publie des tableaux de bord sur les différents points testés

noteLe serveur d’intégration continue exécute de manière périodique les tâches suivantes :

  • PHP MD : Analyse statique de code. Détecte des problèmes potentiels dans le code : bugs probables, code mort, code sous optimal, blocs avec une complexité excessive
  • PHP_Depend : Analyse statique de code. Mesure la complexité du code : interdépendances, complexité cyclomatique, n-path
  • PHP_CodeSniffer : Analyse statique de code. Vérifie le respect des conventions de code : commentaires absents, indentation, conventions de nommage
  • PHPUnit : Tests unitaires automatisés. Vérifie le bon fonctionnement des unités de code, analyse la couverture du code par les tests. Peut intégrer des tests fonctionnels.
  • Clover : Analyse la couverture du code par les tests

Pour compléter le dispositif, nous avons également mis en place un outil de gestion de projet interne, web tracker : REDMINE

Grâce à l’adoption de ce modèle, nous facilitons l’intégration avec des applications tierces. Nous favorisions le développement et l’organisation d’API et nous garantissons que Maarch est potentiellement plus stable.