Maintenir du code historique - RMLL 2011

1 454 vues

Publié le

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
1 454
Sur SlideShare
0
Issues des intégrations
0
Intégrations
2
Actions
Partages
0
Téléchargements
8
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive
  • Pas besoin d'argumenter : un dépôt de code est indispensable à partir d'un seul développeur
  • Maintenir du code historique - RMLL 2011

    1. 1. Maintenir du code historique RMLL 2011
    2. 2. 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 »
    3. 3. 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
    4. 4. 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
    5. 5. Se familiariser avec lapplication
    6. 6. 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
    7. 7. 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
    8. 8. 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
    9. 9. Lister les langages» SLOCCount22/07/11 ALTER WAY – Maintenir du code historique
    10. 10. Cartographier le code» phploc22/07/11 ALTER WAY – Maintenir du code historique
    11. 11. Générer la documentation de lAPI» PHP Documentor» Doxygen22/07/11 ALTER WAY – Maintenir du code historique
    12. 12. Cartographier la base de données» MySQL Workbench22/07/11 ALTER WAY – Maintenir du code historique
    13. 13. Déterminer les pré-requis» Librairies tierces» Version et extensions de PHP avec PHP_CompatInfo22/07/11 ALTER WAY – Maintenir du code historique
    14. 14. Créer de la documentation» Documenter au fur et à mesure» Ne pas repartir des documentations existantes22/07/11 ALTER WAY – Maintenir du code historique
    15. 15. Tests dintégration22/07/11
    16. 16. 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
    17. 17. Efficacité» Facile à mettre en œuvre sans connaître les détails internes» Couvre plusieurs couches techniques22/07/11 ALTER WAY – Maintenir du code historique
    18. 18. Outils» Selenium» Sikuli22/07/11 ALTER WAY – Maintenir du code historique
    19. 19. 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
    20. 20. Tests unitaires22/07/11
    21. 21. •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
    22. 22. Rendre le code testable» Injection de dépendance22/07/11 ALTER WAY – Maintenir du code historique
    23. 23. Couverture de code (1/3)» PHP_ChangeCoverage22/07/11 ALTER WAY – Maintenir du code historique
    24. 24. Couverture de code (2/3)» Sans prise en compte des changements22/07/11 ALTER WAY – Maintenir du code historique
    25. 25. Couverture de code (3/3)» Avec prise en compte des changements22/07/11 ALTER WAY – Maintenir du code historique
    26. 26. Modification du code22/07/11
    27. 27. 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
    28. 28. 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
    29. 29. 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
    30. 30. 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
    31. 31. Factoriser le code dupliqué» php_cpd22/07/11 ALTER WAY – Maintenir du code historique
    32. 32. 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
    33. 33. Procédural vers Orienté Objet (1/2)» Encapsuler lancien code22/07/11 ALTER WAY – Maintenir du code historique
    34. 34. Procédural vers Orienté Objet (2/2)22/07/11 ALTER WAY – Maintenir du code historique
    35. 35. Déployer le nouveau code» Automatiser le processus» Déployer sur un serveur de test22/07/11 ALTER WAY – Maintenir du code historique
    36. 36. Surveiller le comportement» Mise en place de logs» Surveillance des logs !22/07/11 ALTER WAY – Maintenir du code historique
    37. 37. 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

    ×