Maintenir du code historique - RMLL 2011
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Maintenir du code historique - RMLL 2011

on

  • 1,254 views

 

Statistics

Views

Total Views
1,254
Views on SlideShare
1,254
Embed Views
0

Actions

Likes
0
Downloads
6
Comments
0

0 Embeds 0

No embeds

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
  • Pas besoin d'argumenter : un dépôt de code est indispensable à partir d'un seul développeur

Maintenir du code historique - RMLL 2011 Presentation Transcript

  • 1. Maintenir du code historique RMLL 2011
  • 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. 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. 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. Se familiariser avec lapplication
  • 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. 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. 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. Lister les langages» SLOCCount22/07/11 ALTER WAY – Maintenir du code historique
  • 10. Cartographier le code» phploc22/07/11 ALTER WAY – Maintenir du code historique
  • 11. Générer la documentation de lAPI» PHP Documentor» Doxygen22/07/11 ALTER WAY – Maintenir du code historique
  • 12. Cartographier la base de données» MySQL Workbench22/07/11 ALTER WAY – Maintenir du code historique
  • 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. 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. Tests dintégration22/07/11
  • 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. 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. Outils» Selenium» Sikuli22/07/11 ALTER WAY – Maintenir du code historique
  • 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. Tests unitaires22/07/11
  • 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. Rendre le code testable» Injection de dépendance22/07/11 ALTER WAY – Maintenir du code historique
  • 23. Couverture de code (1/3)» PHP_ChangeCoverage22/07/11 ALTER WAY – Maintenir du code historique
  • 24. Couverture de code (2/3)» Sans prise en compte des changements22/07/11 ALTER WAY – Maintenir du code historique
  • 25. Couverture de code (3/3)» Avec prise en compte des changements22/07/11 ALTER WAY – Maintenir du code historique
  • 26. Modification du code22/07/11
  • 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. 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. 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. 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. Factoriser le code dupliqué» php_cpd22/07/11 ALTER WAY – Maintenir du code historique
  • 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. Procédural vers Orienté Objet (1/2)» Encapsuler lancien code22/07/11 ALTER WAY – Maintenir du code historique
  • 34. Procédural vers Orienté Objet (2/2)22/07/11 ALTER WAY – Maintenir du code historique
  • 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. Surveiller le comportement» Mise en place de logs» Surveillance des logs !22/07/11 ALTER WAY – Maintenir du code historique
  • 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