Your SlideShare is downloading. ×
  • Like
Industrialisation en PHP
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Industrialisation en PHP

  • 702 views
Published

Outils et méthodes modernes en PHP

Outils et méthodes modernes en PHP

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
702
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
13
Comments
0
Likes
2

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Industrialisation en PHP UTT, Troyes, France, 20 mai 2010vendredi 28 mai 2010
  • 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. Qui parle? Damien Seguy Services expert en Open Source Sécurité, performances, industrialisation Eleveurs d’elePHPants damien.seguy@alterway.frvendredi 28 mai 2010
  • 4. vendredi 28 mai 2010
  • 5. Yes, we take questionsvendredi 28 mai 2010
  • 6. vendredi 28 mai 2010
  • 7. PHP romantiquevendredi 28 mai 2010
  • 8. PHP aujourd’huivendredi 28 mai 2010
  • 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. Trois mantravendredi 28 mai 2010
  • 11. Trois mantra Libérez-vous du codevendredi 28 mai 2010
  • 12. Trois mantra Libérez-vous du code Capitalisezvendredi 28 mai 2010
  • 13. Trois mantra Libérez-vous du code Capitalisez Impliquez vos utilisateursvendredi 28 mai 2010
  • 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. Libérez-vous du codevendredi 28 mai 2010
  • 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. 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. Conventions de codevendredi 28 mai 2010
  • 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. 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. 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. vendredi 28 mai 2010
  • 23. Frameworksvendredi 28 mai 2010
  • 24. Frameworksvendredi 28 mai 2010
  • 25. Frameworksvendredi 28 mai 2010
  • 26. Frameworksvendredi 28 mai 2010
  • 27. Frameworksvendredi 28 mai 2010
  • 28. Frameworksvendredi 28 mai 2010
  • 29. Frameworksvendredi 28 mai 2010
  • 30. Frameworksvendredi 28 mai 2010
  • 31. Frameworksvendredi 28 mai 2010
  • 32. Frameworksvendredi 28 mai 2010
  • 33. Frameworksvendredi 28 mai 2010
  • 34. Frameworksvendredi 28 mai 2010
  • 35. Frameworksvendredi 28 mai 2010
  • 36. Frameworksvendredi 28 mai 2010
  • 37. Frameworksvendredi 28 mai 2010
  • 38. Frameworksvendredi 28 mai 2010
  • 39. Frameworksvendredi 28 mai 2010
  • 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. 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. 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. vendredi 28 mai 2010
  • 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. Le coeur du développementvendredi 28 mai 2010
  • 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. Capitalisationvendredi 28 mai 2010
  • 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. Tests unitairesvendredi 28 mai 2010
  • 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. Tests unitaires PHP Unit : standard de facto Simple Test, Lemon, Zend_Test, phptvendredi 28 mai 2010
  • 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. Conception Captures d’écran : WireFraming Axure, Basalmiq, pencil sketching Modèle de données Power Architect, MySQL WorkBenchvendredi 28 mai 2010
  • 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. 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. ∆ Convention ∆ IDE ∆ Conception ∆ Framework ∆ Déploiement ∆ VCS Capitalisation Code ∆ Tests unitaires ∆ CI ∆ Docs ∆ Bug ∆ Méthodes Tracking ∆ Tests fonctionnels Implicationvendredi 28 mai 2010
  • 57. Impliquer les utilisateursvendredi 28 mai 2010
  • 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. 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. vendredi 28 mai 2010
  • 61. vendredi 28 mai 2010
  • 62. vendredi 28 mai 2010
  • 63. vendredi 28 mai 2010
  • 64. vendredi 28 mai 2010
  • 65. vendredi 28 mai 2010
  • 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. 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. vendredi 28 mai 2010
  • 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. 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. vendredi 28 mai 2010
  • 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. vendredi 28 mai 2010
  • 74. Encore plus loin? Déploiement continu (a la flickr) Audits croisés Audits collaboratifs Analyse statiquevendredi 28 mai 2010
  • 75. Merci! http://www.alterway.fr/ publications/ livre-blanc-industrialisation-php Damien Seguy : damien.seguy@alterway.frvendredi 28 mai 2010
  • 76. damien.seguy@alterway.fr http://www.slideshare.net/dseguy/vendredi 28 mai 2010