Industrialisation en PHP

999 vues

Publié le

Outils et méthodes modernes en PHP

0 commentaire
3 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
999
Sur SlideShare
0
Issues des intégrations
0
Intégrations
5
Actions
Partages
0
Téléchargements
22
Commentaires
0
J’aime
3
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Industrialisation en PHP

  1. 1. Industrialisation en PHP UTT, Troyes, France, 20 mai 2010vendredi 28 mai 2010
  2. 2. Agenda Maîtriser les cycles de développements Accélérer le développement PHP Connaître et utiliser les outils et méthodesvendredi 28 mai 2010
  3. 3. Qui parle? Damien Seguy Services expert en Open Source Sécurité, performances, industrialisation Eleveurs d’elePHPants damien.seguy@alterway.frvendredi 28 mai 2010
  4. 4. vendredi 28 mai 2010
  5. 5. Yes, we take questionsvendredi 28 mai 2010
  6. 6. vendredi 28 mai 2010
  7. 7. PHP romantiquevendredi 28 mai 2010
  8. 8. PHP aujourd’huivendredi 28 mai 2010
  9. 9. Sur le terrain 65 portails à refaire en 6 mois 6 personnes pour mettre à niveau 350 intranets 120 événements par an, sur 150 serveurs Une application sur une ville : 12 villes pour Noel, 2 pays l’an prochain. Un employé à temps plein pour le déploiement Multiplier les commandes par 6 en 2 moisvendredi 28 mai 2010
  10. 10. Trois mantravendredi 28 mai 2010
  11. 11. Trois mantra Libérez-vous du codevendredi 28 mai 2010
  12. 12. Trois mantra Libérez-vous du code Capitalisezvendredi 28 mai 2010
  13. 13. Trois mantra Libérez-vous du code Capitalisez Impliquez vos utilisateursvendredi 28 mai 2010
  14. 14. ∆ Convention ∆ IDE ∆ Conception ∆ Framework ∆ Déploiement ∆ VCS Capitalisation Code ∆ Tests unitaires ∆ CI ∆ Docs ∆ Bug ∆ Méthodes Tracking ∆ Tests fonctionnels Implicationvendredi 28 mai 2010
  15. 15. Libérez-vous du codevendredi 28 mai 2010
  16. 16. Libérez vous du code Le facteur bus Ne soyez pas le seul Le facteur WTF Écrivez du code qui peut être compris 50% du temps consacré à la production Ne vous mettez pas en travers du cheminvendredi 28 mai 2010
  17. 17. Libérez vous du code S’arranger pour que l’on puisse travailler sans vous Ne vous investissez pas dans votre code Rendez votre code accessible aux autresvendredi 28 mai 2010
  18. 18. Conventions de codevendredi 28 mai 2010
  19. 19. Conventions de code Il en existe de nombreuses PEAR, Zend Frameworks, Symfony... Choisissez en une Évitez de créer la votre Cela apporte de l’unité au travail en équipe Pour vérifier son application Code_sniffervendredi 28 mai 2010
  20. 20. IDE Choisissez celui qui vous convient le mieux Évitez les éditeurs trop simples Netbean / Symfony, Zend tools / Zend Framework Komodo / cakePHPvendredi 28 mai 2010
  21. 21. IDE Il faut au moins Navigateur de code, intégration avec un framework Editeur, coloration syntaxique, support des encodages intégration avec les tests unitaires interface avec VCSvendredi 28 mai 2010
  22. 22. vendredi 28 mai 2010
  23. 23. Frameworksvendredi 28 mai 2010
  24. 24. Frameworksvendredi 28 mai 2010
  25. 25. Frameworksvendredi 28 mai 2010
  26. 26. Frameworksvendredi 28 mai 2010
  27. 27. Frameworksvendredi 28 mai 2010
  28. 28. Frameworksvendredi 28 mai 2010
  29. 29. Frameworksvendredi 28 mai 2010
  30. 30. Frameworksvendredi 28 mai 2010
  31. 31. Frameworksvendredi 28 mai 2010
  32. 32. Frameworksvendredi 28 mai 2010
  33. 33. Frameworksvendredi 28 mai 2010
  34. 34. Frameworksvendredi 28 mai 2010
  35. 35. Frameworksvendredi 28 mai 2010
  36. 36. Frameworksvendredi 28 mai 2010
  37. 37. Frameworksvendredi 28 mai 2010
  38. 38. Frameworksvendredi 28 mai 2010
  39. 39. Frameworksvendredi 28 mai 2010
  40. 40. Frameworks Choisissez en un Pour accélérer le développement Pour son coté agréable et pratique Il doit avoir Des composants, des conventions, des tests unitaires, des utilitaires de mise en place Une communauté, des experts, des formationsvendredi 28 mai 2010
  41. 41. Au dela des frameworks Les frameworks sont généralistes et techniques Bâtissez votre propre bibliothèque métier Nous verrons bientôt des bibliothèques métiervendredi 28 mai 2010
  42. 42. VCS Version Control System Subversion, git, CVS, mercurial Résolution des conflits Permet le développement parallèle, le retour en arrière, les versions. Stocke et distribue le codevendredi 28 mai 2010
  43. 43. vendredi 28 mai 2010
  44. 44. VCS Développement Tests Production unitaires VCS Suivi de Intégration bugs continue Le code hors du VCS n’existe pas!vendredi 28 mai 2010
  45. 45. Le coeur du développementvendredi 28 mai 2010
  46. 46. ∆ Convention ∆ IDE ∆ Conception ∆ Framework ∆ Déploiement ∆ VCS Capitalisation Code ∆ Tests unitaires ∆ CI ∆ Docs ∆ Bug ∆ Méthodes Tracking ∆ Tests fonctionnels Implicationvendredi 28 mai 2010
  47. 47. Capitalisationvendredi 28 mai 2010
  48. 48. Capitalisation Accumuler à toutes les phases du projet Capturer l’information au fil de l’eau Evitez les culs de sacs Toujours se demander qui va l’utiliser?vendredi 28 mai 2010
  49. 49. Tests unitairesvendredi 28 mai 2010
  50. 50. Les tests aident à découpler Évite les régressions Production Code Préviens votre rappel Affiche les progres Sert de manuel Aide aux communications Clientvendredi 28 mai 2010
  51. 51. Tests unitaires PHP Unit : standard de facto Simple Test, Lemon, Zend_Test, phptvendredi 28 mai 2010
  52. 52. Conception Description générale de l’application Documents très variés Diagrammes d’architecture Visio, Omnigraffle, Dia Diagrammes UML Diagrammes de classes, Cas d’utilisation StarUML, ArgoUML, BOUML,vendredi 28 mai 2010
  53. 53. Conception Captures d’écran : WireFraming Axure, Basalmiq, pencil sketching Modèle de données Power Architect, MySQL WorkBenchvendredi 28 mai 2010
  54. 54. Conception Ayez un inventaire Classes, méthodes, constantes, $_SESSION, inclusions, fichiers, dossiers,... Vérifiez l’utilisation réelle Prévoyez de faire des allers-retours avec la réalité La conception n’est pas la programmationvendredi 28 mai 2010
  55. 55. Déploiement automatisé Phing, maven, ant, pear Nécessaire pour l’intégration continue L’aspect le plus souvent négligé du développement Obligatoire pour les grandes architecturesvendredi 28 mai 2010
  56. 56. ∆ Convention ∆ IDE ∆ Conception ∆ Framework ∆ Déploiement ∆ VCS Capitalisation Code ∆ Tests unitaires ∆ CI ∆ Docs ∆ Bug ∆ Méthodes Tracking ∆ Tests fonctionnels Implicationvendredi 28 mai 2010
  57. 57. Impliquer les utilisateursvendredi 28 mai 2010
  58. 58. Impliquer les utilisateurs Eviter l’effet tunnel Savoir affronter le tsunami des questions bugs, changements, nouveautés, adaptations, accélérations, etc. Rendre les utilisateurs autonome, faire qu’ils se prennent en chargevendredi 28 mai 2010
  59. 59. Bug tracker Mantis, Trac, Redline, Jira Rassembler les retours des utilisateurs et clients en un seul endroit Suivre leur évolution jusqu’à la conclusion Permet de produire le changelog A relier avec le VCS et le déploiementvendredi 28 mai 2010
  60. 60. vendredi 28 mai 2010
  61. 61. vendredi 28 mai 2010
  62. 62. vendredi 28 mai 2010
  63. 63. vendredi 28 mai 2010
  64. 64. vendredi 28 mai 2010
  65. 65. vendredi 28 mai 2010
  66. 66. Tests fonctionnels A base de wiki : accessibles aux non-techniciens Collecte de tests métiers, et non plus techniques Tests a priori, tests en direct Les développeurs assurent la liaison avec le code Green pepper, fitnesse, concordionvendredi 28 mai 2010
  67. 67. Intégration continue Vérification du code en tâche de fond phpUnderControl, Rephlux, Hudson, Maven, sonar, Xinc, script maison Présentation en graphique des résultats Compilation, code sniffer, tests unitaires, couverture de code Journaux, inclusion, performances...vendredi 28 mai 2010
  68. 68. vendredi 28 mai 2010
  69. 69. Méthodologies Expliquer comment on produit le code Justifier comment on assure la qualité Impliquer les utilisateurs! Cycles de développement courts Production, correction, adaptation Méthodologies agiles : SCRUM, XP, Lean SD, Open Unified Processvendredi 28 mai 2010
  70. 70. Pratiques agiles Les pratiques agiles sont souvent suffisantes Codage par paire Tester avant de coder Cycles courts de production Scénarios utilisateurs Poker collectif Point journalier (Daily Scrum)vendredi 28 mai 2010
  71. 71. vendredi 28 mai 2010
  72. 72. La documentation A transférer des développeurs aux utilisateurs Les développeurs font la première version Ajouter un système de commentaires Voir PHP.net : les commentaires sont plus intéressants que la documentation! Utiliser un Wiki Les utilisateurs font la documentationvendredi 28 mai 2010
  73. 73. vendredi 28 mai 2010
  74. 74. Encore plus loin? Déploiement continu (a la flickr) Audits croisés Audits collaboratifs Analyse statiquevendredi 28 mai 2010
  75. 75. Merci! http://www.alterway.fr/ publications/ livre-blanc-industrialisation-php Damien Seguy : damien.seguy@alterway.frvendredi 28 mai 2010
  76. 76. damien.seguy@alterway.fr http://www.slideshare.net/dseguy/vendredi 28 mai 2010

×