Outils open source pour
accélérer et industrialiser
vos développements


 Solutions Linux 2010
Qui suis-je ?

     Julien PAULI

     Formateur pour Alter Way Formation
     Architecte logiciel certifié PHP / ZendF...
Plan

     Panorama des outils open source aidant à l'industrialisation

     IDE
     Gestionnaire de versions
     F...
Les outils open source
     PHP : le monde du développement Web open source à
      portée




7 avril 2010     ALTER WAY...
IDE : Développez sereinement

     Un éditeur de texte "simple" est souvent trop peu

     L'IDE est l'outil que le déve...
Quelques IDE

     PDT
              Eclipse based
              Très connu des développeurs (multi langages)

     Ne...
IDE : PDT

     PDT
              Complétion
              Débogage
              Documentation
              Colorat...
Gestionnaire de sources

     Le code source est la valeur produite par l'équipe
              Prenez en soin !

     S...
Frameworks

     Faire en sorte que tout le monde parle la même langue

     Il existe 20.000 manières différentes de ré...
Frameworks PHP

     Tous ont des licences "open" (bsd, mit ou équivalent)

     Zend Framework
              Supporté ...
Testabilité logicielle

     Comment démontrez-vous à vos clients que le logiciel
      répond à leurs attentes ?
       ...
Librairies de test

     PHPUnit
              Clone de Junit (Java)
              Très connu/reconnu dans le monde PHP...
Exemple PHPUnit
     Permet de valider le bon fonctionnement d'un algorithme
     Permet d'éviter la peur du changement
...
Tests PHPUnit et code coverage
     Permet de valider le bon fonctionnement d'un algorithme
     Permet d'éviter la peur...
Métriques de code
     Mesurer des caractéristiques sur le code
              Exploiter ces caractéristiques (graphes)

...
PHP_Depends




     NumberOfMethods
     NumberOfPackages
     NumberOfClass
     CyclomaticComplexity
     Avererag...
PHP_CodeBrowser




       Revue de code
              Lignes trop grandes
              Code trop complexe (if, while,...
PHP_MessDetector




   Quelques conseils pour un code plus "pro"
7 avril 2010    ALTER WAY SolutionsLinux 2010   18
Déployer , sauvegarder

     Déployer
              Passer du code source au logiciel final
              Beaucoup d'ét...
Déployer avec PHING

     PHing Is Not Gnumake
              Clone de Apache ANT
              Description de tâches à ...
Exemple script de déploiement PHING
         <?xml version="1.0"?>
          <?xml version="1.0"?>
         <project name=...
Plateforme d'Intégration Continue

     Outil qui effectue le déploiement de manière
      automatisée et régulière
     ...
Quelques plateformes d'Intégration Continue

      Hudson
               Java Servlet
      CruiseControl
            ...
Intégration continue : PHPUnderControl

     PHPUnderControl, plugin pour CruiseControl
              Une JVM est requis...
Intégration continue : PHPUnderControl

           Configuration peu intuitive, mais puissante

<publishers>
 <publishers...
Intégration continue : PHPUnderControl

     Configuration peu intuitive, mais puissante




7 avril 2010      ALTER WAY ...
Industrialisez !

     L'éco système PHP est riche d'outils open-sources
              Gratuits
              Indispens...
Livre blanc « Industrialisation PHP »

     Damien Seguy / Jean-Marc
      Fontaine
     Panorama des outils et
      mé...
Merci

     Me contacter : julien.pauli@alterway.fr
     Retouver cette présentation :
      http://www.slideshare.net/j...
Prochain SlideShare
Chargement dans…5
×

AlterWay SolutionsLinux Outils Industrialisation PHP

2 062 vues

Publié le

AlterWay SolutionsLinux Outils Industrialisation PHP

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

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

Aucune remarque pour cette diapositive

AlterWay SolutionsLinux Outils Industrialisation PHP

  1. 1. Outils open source pour accélérer et industrialiser vos développements Solutions Linux 2010
  2. 2. Qui suis-je ?  Julien PAULI  Formateur pour Alter Way Formation  Architecte logiciel certifié PHP / ZendFramework  Membre de l'AFUP  Co-auteur du livre "ZendFramework bien développer en PHP"  Contributeur open source PHP / Apache 7 avril 2010 ALTER WAY SolutionsLinux 2010 2
  3. 3. Plan  Panorama des outils open source aidant à l'industrialisation  IDE  Gestionnaire de versions  Frameworks  Tests  Métriques de code  Déploiement / Sauvegardes  Intégration continue  Conclusion 7 avril 2010 ALTER WAY SolutionsLinux 2010 3
  4. 4. Les outils open source  PHP : le monde du développement Web open source à portée 7 avril 2010 ALTER WAY SolutionsLinux 2010 4
  5. 5. IDE : Développez sereinement  Un éditeur de texte "simple" est souvent trop peu  L'IDE est l'outil que le développeur manipule tous les jours  Autant qu'il soit à l'aise avec  Et que l'outil l'aide au maximum dans son travail  Editeur avancé  Connecteurs réseaux (SVN, SSH, FTP, SQL)  Gestion des librairies et frameworks  Production de documentation 7 avril 2010 ALTER WAY SolutionsLinux 2010 5
  6. 6. Quelques IDE  PDT  Eclipse based  Très connu des développeurs (multi langages)  NetBeans  Connu du monde Java  Léger  Percée certaine pour PHP 7 avril 2010 ALTER WAY SolutionsLinux 2010 6
  7. 7. IDE : PDT  PDT  Complétion  Débogage  Documentation  Coloration  SVN/FTP  ... 7 avril 2010 ALTER WAY SolutionsLinux 2010 7
  8. 8. Gestionnaire de sources  Le code source est la valeur produite par l'équipe  Prenez en soin !  SVN  Connu, maitrisé, centralisé  Mercurial  Décentralisé  GIT  En pleine expansion !  Décentralisé 7 avril 2010 ALTER WAY SolutionsLinux 2010 8
  9. 9. Frameworks  Faire en sorte que tout le monde parle la même langue  Il existe 20.000 manières différentes de répondre à un même problème  Laquelle sera la bonne ?  Faites confiance à des Frameworks "pros"  Ensemble de composants prêts à l'emploi  Règles strictes de développement  Le framework est le coeur technique de l'équipe  POO et Design Patterns  Architecure logicielle, évolutions maitrisées 7 avril 2010 ALTER WAY SolutionsLinux 2010 9
  10. 10. Frameworks PHP  Tous ont des licences "open" (bsd, mit ou équivalent)  Zend Framework  Supporté par Zend  Rapidité prise en main  Symfony  Supporté par SensioLabs  Vitesse des développements  Solar  CakePHP  Copix/Jelix  ... Yours ? 7 avril 2010 ALTER WAY SolutionsLinux 2010 10
  11. 11. Testabilité logicielle  Comment démontrez-vous à vos clients que le logiciel répond à leurs attentes ?  Comment assurez-vous qu'il fait ce pour quoi il a été conçu ?  Comment maitrisez-vous le changement ?  Avec peur ?  Avec enthousiasme ?  Ecrivez des tests !  Unitaires  Fonctionnels  De montée en charge  De non régréssion  ... 7 avril 2010 ALTER WAY SolutionsLinux 2010 11
  12. 12. Librairies de test  PHPUnit  Clone de Junit (Java)  Très connu/reconnu dans le monde PHP  Très bien maintenu, fortes évolutions  Énormément de fonctionnalités (logs, analyse de couverture...)  Outil indispensable  SimpleTest  maintenance moindre 7 avril 2010 ALTER WAY SolutionsLinux 2010 12
  13. 13. Exemple PHPUnit  Permet de valider le bon fonctionnement d'un algorithme  Permet d'éviter la peur du changement 7 avril 2010 ALTER WAY SolutionsLinux 2010 13
  14. 14. Tests PHPUnit et code coverage  Permet de valider le bon fonctionnement d'un algorithme  Permet d'éviter la peur du changement 7 avril 2010 ALTER WAY SolutionsLinux 2010 14
  15. 15. Métriques de code  Mesurer des caractéristiques sur le code  Exploiter ces caractéristiques (graphes)  PHP_LineOfCode  Quelques statistiques numériques sur le code  PHP_CopyPasteDetector  Détecte les copier/coller, négatifs en OOP  PHP_CodeSniffer  Détecte les erreurs dans les conventions de codage  PHP_Depend  Analyse des dépendances objets et complexité du code  PHP_CodeBrowser  Présente graphiquement les logs des outils CPD et CS  PHP_MessDetector  Détecte les "code smells", e.g: code mort, trop de méthodes ... 7 avril 2010 ALTER WAY SolutionsLinux 2010 15
  16. 16. PHP_Depends  NumberOfMethods  NumberOfPackages  NumberOfClass  CyclomaticComplexity  AvererageNumberofDerivatedClasses  Nombre d'appels de méthodes 7 avril 2010 ALTER WAY SolutionsLinux 2010 16
  17. 17. PHP_CodeBrowser  Revue de code  Lignes trop grandes  Code trop complexe (if, while, for...)  Code mort (jamais appelé)  Manque de commentaires  Code non sécurisé (inclusions externes...) 7 avril 2010 ALTER WAY SolutionsLinux 2010 17
  18. 18. PHP_MessDetector  Quelques conseils pour un code plus "pro" 7 avril 2010 ALTER WAY SolutionsLinux 2010 18
  19. 19. Déployer , sauvegarder  Déployer  Passer du code source au logiciel final  Beaucoup d'étapes intermédiaires !  Exemple de scénario de déploiement 1 - Tirer une version depuis le dépôt 1 - Tirer une version depuis le dépôt 2 - Éventuellement modifier son arborescence 2 - Éventuellement modifier son arborescence 3 - Lancer les/des tests 3 - Lancer les/des tests 4 - Lancer des métriques d'analyse de code 4 - Lancer des métriques d'analyse de code 5 - Créer un paquet (zip, tar, autre) 5 - Créer un paquet (zip, tar, autre) 6 - Envoyer le tout quelque part (ftp, scp ...) 6 - Envoyer le tout quelque part (ftp, scp ...)  Tout cela manuellement ? 7 avril 2010 ALTER WAY SolutionsLinux 2010 19
  20. 20. Déployer avec PHING  PHing Is Not Gnumake  Clone de Apache ANT  Description de tâches à effectuer sous forme XML  Lancement de ces tâches en ligne de commandes  Lancements réguliers via CRON ou SVN hooks  Dépendances entre les tâches  Journaux en XML  Trop de fichiers ? Utilisez des packages PHAR  Equivalent du JAR de Java  Inclus dans PHP5.3 nativement  Encapsule une application entière dans un seul fichier  Compresse / signe son contenu  ... 7 avril 2010 ALTER WAY SolutionsLinux 2010 20
  21. 21. Exemple script de déploiement PHING <?xml version="1.0"?> <?xml version="1.0"?> <project name="SLL" default="prepare" basedir="./library"> <project name="SLL" default="prepare" basedir="./library"> <property name="builddir" value="../build" override="true" /> <property name="builddir" value="../build" override="true" /> <target name="prepare"> <target name="prepare"> <echo msg="Making directory ./build" /> <echo msg="Making directory ./build" /> <mkdir dir="${builddir}" /> <mkdir dir="${builddir}" /> <copy todir="${builddir}" > <copy todir="${builddir}" > <fileset dir="."> <fileset dir="."> <include name="**/**" /> <include name="**/**" /> </fileset> </fileset> </copy> </copy> </target> </target> <target name="phpunit" depends="prepare"> <target name="phpunit" depends="prepare"> <phpunit haltonfailure="true" haltonerror="true"> <phpunit haltonfailure="true" haltonerror="true"> <batchtest> <batchtest> <fileset dir="../tests"> <fileset dir="../tests"> <include name="*Test.php" /> <include name="*Test.php" /> </fileset> </fileset> </batchtest> </batchtest> </phpunit> </phpunit> </target> </target> </project> </project> 7 avril 2010 ALTER WAY SolutionsLinux 2010 21
  22. 22. Plateforme d'Intégration Continue  Outil qui effectue le déploiement de manière automatisée et régulière  Très pratique lors de méthodes agiles  Très proche de Phing  Automatisez les tâches répétitives  Assurez une qualité et un suivi du projet permanent  Ne perdez pas le fil de vos développements 7 avril 2010 ALTER WAY SolutionsLinux 2010 22
  23. 23. Quelques plateformes d'Intégration Continue  Hudson  Java Servlet  CruiseControl  Java StandAlone  Bamboo  Propriétaire , Atlassian  Apache Gump  Python based  Xinc  PHP based 7 avril 2010 ALTER WAY SolutionsLinux 2010 23
  24. 24. Intégration continue : PHPUnderControl  PHPUnderControl, plugin pour CruiseControl  Une JVM est requise  Outil lourd, mais puissant  Connu dans le monde PHP  Apache Ant ou Phing comme taskManager  Analyse des logs métriques du projet  Création de graphiques 7 avril 2010 ALTER WAY SolutionsLinux 2010 24
  25. 25. Intégration continue : PHPUnderControl  Configuration peu intuitive, mais puissante <publishers> <publishers> <artifactspublisher dir="projects/${project.name}/build/api" <artifactspublisher dir="projects/${project.name}/build/api" dest="artifacts/${project.name}" subdirectory="api"/> dest="artifacts/${project.name}" subdirectory="api"/> <artifactspublisher dir="projects/${project.name}/build/coverage" <artifactspublisher dir="projects/${project.name}/build/coverage" dest="artifacts/${project.name}" subdirectory="coverage"/> dest="artifacts/${project.name}" subdirectory="coverage"/> <execute command="phpuc graph logs/${project.name} artifacts/${project.name}"/> <execute command="phpuc graph logs/${project.name} artifacts/${project.name}"/> <execute command="phpcb --log projects/${project.name}/build/logs --source projects/$ <execute command="phpcb --log projects/${project.name}/build/logs --source projects/$ {project.name}/source --output projects/${project.name}/build/code-browser"/> {project.name}/source --output projects/${project.name}/build/code-browser"/> <artifactspublisher dir="projects/${project.name}/build/code-browser" dest="artifacts/$ <artifactspublisher dir="projects/${project.name}/build/code-browser" dest="artifacts/$ {project.name}" subdirectory="code-browser"/> {project.name}" subdirectory="code-browser"/> </publishers> </publishers> 7 avril 2010 ALTER WAY SolutionsLinux 2010 25
  26. 26. Intégration continue : PHPUnderControl  Configuration peu intuitive, mais puissante 7 avril 2010 ALTER WAY SolutionsLinux 2010 26
  27. 27. Industrialisez !  L'éco système PHP est riche d'outils open-sources  Gratuits  Indispensables  Très souvent écrits en PHP, pour PHP  Chacun peu mettre en place des outils  A son rythme  A sa manière  Éduquez les développeurs  Formations  Prise de conscience de la puissance de la plateforme  Veille technologique 7 avril 2010 ALTER WAY SolutionsLinux 2010 27
  28. 28. Livre blanc « Industrialisation PHP »  Damien Seguy / Jean-Marc Fontaine  Panorama des outils et méthodes d'industrialisation des développements PHP  Publié en octobre 2009  Plus de 1 500 téléchargements  Livre en préparation Téléchargement : http://www.alterway.fr/publications/livre-blanc-industrialisation-php Blog : http://www.industrialisation-php.com/ 7 avril 2010 ALTER WAY SolutionsLinux 2010 28
  29. 29. Merci  Me contacter : julien.pauli@alterway.fr  Retouver cette présentation : http://www.slideshare.net/jpauli  Des questions ? 7 avril 2010 ALTER WAY SolutionsLinux 2010 29

×