• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Maintenir du code historique , par Jean Marc Fontaine
 

Maintenir du code historique , par Jean Marc Fontaine

on

  • 731 views

Les bonnes pratiques de développement ont généralement pour pré-requis implicite d’avoir toute latitude sur le projet. Malheureusement, on hérite souvent d’un code historique plus ou moins ...

Les bonnes pratiques de développement ont généralement pour pré-requis implicite d’avoir toute latitude sur le projet. Malheureusement, on hérite souvent d’un code historique plus ou moins bien conçu.

Faut-il simplement renoncer aux bonnes pratiques sous prétexte qu’on ne commence pas un projet de zéro ?

Nous verrons qu’en introduisant une bonne dose de pragmatisme, il est possible d’intégrer petit à petit des bonnes pratiques dans un code afin d’en faire progresser la qualité par étapes.

Statistics

Views

Total Views
731
Views on SlideShare
727
Embed Views
4

Actions

Likes
1
Downloads
3
Comments
0

2 Embeds 4

http://www.scoop.it 3
http://twitter.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Maintenir du code historique , par Jean Marc Fontaine Maintenir du code historique , par Jean Marc Fontaine Presentation Transcript

    • Maintenir du code historique RMLL 2011
    • Qui suis-je ?» Jean-Marc Fontaine» Consultant pour Alter Way Consulting» Président de lAFUP» Formateur / Professeur vacataire à luniversité de Saint Quentin» Auteur du blog Industrialisation-PHP.com» Co-auteur du livre blanc « Industrialisation PHP »
    • Le problème» Application existe depuis longtemps» Application fonctionne (à peu près)» La connaissance est diffuse voire inexistante» Les évolutions prennent du temps» Chaque modification est très dangereuse
    • Bien démarrer» Ne pas se sentir noyé» Être pragmatique et non idéaliste» Privilégier le retour sur investissement» Utiliser les outils avec un certain recul
    • Se familiariser avec lapplication
    • Utiliser lapplication» Échanger avec les gens du métier» Les regarder manipuler lapplication» La manipuler soi-même» Regarder les logs22/07/11 ALTER WAY – Maintenir du code historique
    • Etudier tous les documents disponibles» Documentations (fonctionnelle, technique, architecture)» Schémas (architecture, base de données)» Procédures de déploiement» Cahier de recette» Comptes-rendus de réunions» Emails» Gestionnaire de tickets» Outil de planification» Historique du gestionnaire de code» Etc.22/07/11 ALTER WAY – Maintenir du code historique
    • Soyez prudent» Les documents sont obsolètes» Les documents sont erronés» Les documents ne sont pas exhaustifs22/07/11 ALTER WAY – Maintenir du code historique
    • Lister les langages» SLOCCount22/07/11 ALTER WAY – Maintenir du code historique
    • Cartographier le code» phploc22/07/11 ALTER WAY – Maintenir du code historique
    • Générer la documentation de lAPI» PHP Documentor» Doxygen22/07/11 ALTER WAY – Maintenir du code historique
    • Cartographier la base de données» MySQL Workbench22/07/11 ALTER WAY – Maintenir du code historique
    • Déterminer les pré-requis» Librairies tierces» Version et extensions de PHP avec PHP_CompatInfo22/07/11 ALTER WAY – Maintenir du code historique
    • Créer de la documentation» Documenter au fur et à mesure» Ne pas repartir des documentations existantes22/07/11 ALTER WAY – Maintenir du code historique
    • Tests dintégration22/07/11
    • Filet de sécurité» Encadre le comportement actuel» Permet de repérer facilement les modifications de comportement22/07/11 ALTER WAY – Maintenir du code historique
    • Efficacité» Facile à mettre en œuvre sans connaître les détails internes» Couvre plusieurs couches techniques22/07/11 ALTER WAY – Maintenir du code historique
    • Outils» Selenium» Sikuli22/07/11 ALTER WAY – Maintenir du code historique
    • Intégration continue» Placer ces tests dans une intégration continue (Jenkins, PHPUnderControl)» Début de lusine de développement22/07/11 ALTER WAY – Maintenir du code historique
    • Tests unitaires22/07/11
    • •3 approches possibles» Écrire des tests unitaires pour tout le code» Écrire des tests pour le nouveau code uniquement» Écrire des tests pour le nouveau code et le vieux code lié22/07/11 ALTER WAY – Maintenir du code historique
    • Rendre le code testable» Injection de dépendance22/07/11 ALTER WAY – Maintenir du code historique
    • Couverture de code (1/3)» PHP_ChangeCoverage22/07/11 ALTER WAY – Maintenir du code historique
    • Couverture de code (2/3)» Sans prise en compte des changements22/07/11 ALTER WAY – Maintenir du code historique
    • Couverture de code (3/3)» Avec prise en compte des changements22/07/11 ALTER WAY – Maintenir du code historique
    • Modification du code22/07/11
    • Refactorisation / réécriture» Refactorisation : Modification du code source sans modifier le comportement – Les tests unitaires continuent de passer» Réécriture : Modification du code source qui change son comportement – Les tests unitaires doivent être adaptés» Ne jamais mélanger les deux22/07/11 ALTER WAY – Maintenir du code historique
    • Procéder avec précaution» Une petite modification peut avoir beaucoup deffet» Procéder par petites touches» Faire des commits fréquents et atomiques22/07/11 ALTER WAY – Maintenir du code historique
    • Standard de codage» En choisir un (PEAR, Zend Framework, Symfony) et sy tenir» Corriger uniquement le code touché par les modifications» Vérifier avec PHP_CodeSniffer22/07/11 ALTER WAY – Maintenir du code historique
    • Supprimer le code mort» Plusieurs types : – Jamais appelé – Impossible à appeler – Commenté» Apporte de la confusion» Reste dans le dépôt de code au cas où» php_dcd22/07/11 ALTER WAY – Maintenir du code historique
    • Factoriser le code dupliqué» php_cpd22/07/11 ALTER WAY – Maintenir du code historique
    • Code mélangé vers procédural» Séparer les couches de lapplication : – HTML – Javascript, CSS – Manipulation des données (SQL, XML) – Code structurant22/07/11 ALTER WAY – Maintenir du code historique
    • Procédural vers Orienté Objet (1/2)» Encapsuler lancien code22/07/11 ALTER WAY – Maintenir du code historique
    • Procédural vers Orienté Objet (2/2)22/07/11 ALTER WAY – Maintenir du code historique
    • Déployer le nouveau code» Automatiser le processus» Déployer sur un serveur de test22/07/11 ALTER WAY – Maintenir du code historique
    • Surveiller le comportement» Mise en place de logs» Surveillance des logs !22/07/11 ALTER WAY – Maintenir du code historique
    • Merci !» Email : jm@jmfontaine.net» Twitter : jmfontaine» Blog : www.jmfontaine.net» Autre blog : www.industrialisation-php.net22/07/11 ALTER WAY – Maintenir du code historique