SlideShare uma empresa Scribd logo
1 de 25
Baixar para ler offline
Industrialisation en PHP

      Christophe Villeneuve



        16 Janvier 2013
Outils et méthodes



 ✔
     Maîtriser vos cycles de développement


 ✔
     Accélérer votre développement PHP


 ✔
     Utilisez les bons outils et méthodes




      nAcademy – 16 Janvier 2013
PHP à l'ancienne




    nAcademy – 16 Janvier 2013
PHP aujourd'hui




    nAcademy – 16 Janvier 2013
La réalité

 ✔
     Migration de 100 sites en un temps limité


 ✔
     Une Team importante pour maintenir les projets


 ✔
     Nombreux serveurs à maintenir


 ✔
     Beaucoup de projets déployer en même temps


 ✔
     1 personne à plein temps pour 1 tâche répétitive

      nAcademy – 16 Janvier 2013
Libération du code




    nAcademy – 16 Janvier 2013
Libérez vous du code



 ✔
     Le code doit fonctionner sans vous


 ✔
     Ne vous investissez pas émotionnellement


 ✔
     Appliquer un facteur Bus
          ✔
              Rendez le code accessible aux autres




      nAcademy – 16 Janvier 2013
Outils de convention de code
 ✔
     Choisissez une convention à partir d'un outil


 ✔
     N'inventez pas le votre

 ✔
     Cela apporte de l'unité au travail en équipe

 ✔
     Contrôler votre application




      nAcademy – 16 Janvier 2013
IDE

 ✔
     Choisissez celui qui vous plait


 ✔
     IDE associé au Framework


 ✔
     Il faut au moins
          ✔
              Navigateur de code, Intégration avec un framework
          ✔
              Editeur, débogueur, colorisation syntaxique
          ✔
              Intégration des tests unitaires, intégration du framework
          ✔
              Support des encodages, déploiement



      nAcademy – 16 Janvier 2013
Frameworks

✔
    Choisissez en un pour la rapidité de développement
✔
    Il doit proposer
       ✔
           Des composants, des conventions, des tests
       ✔
           Communauté, expertise, formations
✔
    Bâtissez une couche de code métier




       nAcademy – 16 Janvier 2013
Contrôle de version


 ✔
     Résout les conflits


 ✔
     Permet les versions,
     Le développement parallèle
     Le retour en arrière


 ✔
     Stocke et distribue le code



      nAcademy – 16 Janvier 2013
Capitalisez




    nAcademy – 16 Janvier 2013
Capitalisez



 ✔
     Accumulation des connaissances au long du projet


 ✔
     Capturer de l'expérience au fil de l'eau


 ✔
     Penser aux personnes qui vont maintenir le projet




      nAcademy – 16 Janvier 2013
Outils Tests unitaires



✔
    Simple Test
✔
    PHP Unit
✔
    Lemon
✔
    Zend_test
✔
    Atoum




      nAcademy – 16 Janvier 2013
Pourquoi faire des tests ?



 ✔
     Evitent les régressions
 ✔
     Evitent de vous appeler
 ✔
     Les progrès
 ✔
     Servent de manuel
 ✔
     Aident à la communication




      nAcademy – 16 Janvier 2013
Conception

✔
    Description générale de l'application


✔
    Liste de tout ce qui est nommé


✔
    Vérifier le résultat du code


✔
    Diagrammes UML


✔
    Modèles de données
       nAcademy – 16 Janvier 2013
Déploiement automatique

 ✔
     Nécessaire pour l'intégration continue


 ✔
     Trop souvent oublié dans le développement


 ✔
     Obligatoire sur les grandes plates-formes




      nAcademy – 16 Janvier 2013
Impliquez les utilisateurs




    nAcademy – 16 Janvier 2013
Impliquez les utilisateurs

✔
    Eviter l'effet de tunnel


✔
    Eviter la série des questions, des demandes


✔
    Transmetter une partie du travail aux clients finaux




       nAcademy – 16 Janvier 2013
Suivi de bug

 ✔
     Connexion au déploiement, aux CVS


 ✔
     Eviter le contact direct (utilisateurs VS développeurs)


 ✔
     Créer le changement de log au fur et à mesure




      nAcademy – 16 Janvier 2013
Tests fonctionnels

✔
    Wiki : Utilisation possible pour les non techniques


✔
    Capte des cas et des données métiers


✔
    Tests directs


✔
    Le développement fait le lien entre les tableaux et le code




      nAcademy – 16 Janvier 2013
Intégration continue

 ✔
     Vérification du code en tâche de fond


 ✔
     Mémorise les résultats

 ✔
     Partager avec les équipes, le client




      nAcademy – 16 Janvier 2013
Méthologies

 ✔
     Expliquer comment on fait le code


 ✔
     Impliquer les utilisateurs dans le cycle


 ✔
     Cycles de développement court


 ✔
     Méthodes agiles

 ✔
     Pratiques agiles au menu



      nAcademy – 16 Janvier 2013
Documentation

 ✔
     PHPDoc, commentaires taggés


 ✔
     Développeurs aux utilisateurs


 ✔
     La première version aux développeurs


 ✔
     Ajouter des commentaires


 ✔
     Wiki


      nAcademy – 16 Janvier 2013
Questions ?




    nAcademy – 16 Janvier 2013

Mais conteúdo relacionado

Semelhante a Industrialisation PHP

Enib cours c.a.i. web - séance #6 : autour de la webapp
Enib   cours c.a.i. web - séance #6 : autour de la webappEnib   cours c.a.i. web - séance #6 : autour de la webapp
Enib cours c.a.i. web - séance #6 : autour de la webappHoracio Gonzalez
 
Agilité et Logiciels libres même combat ?
Agilité et Logiciels libres même combat ?Agilité et Logiciels libres même combat ?
Agilité et Logiciels libres même combat ?keurvet
 
Solution Linux 2012 : Utilisateurs du Libre ne restez pas dans votre coin
Solution Linux 2012 : Utilisateurs du Libre ne restez pas dans votre coinSolution Linux 2012 : Utilisateurs du Libre ne restez pas dans votre coin
Solution Linux 2012 : Utilisateurs du Libre ne restez pas dans votre coinAnne Nicolas
 
Atelier du web - Analyser sa présence sur le web
Atelier du web - Analyser sa présence sur le webAtelier du web - Analyser sa présence sur le web
Atelier du web - Analyser sa présence sur le webAtlantic 2.0
 
Construire un produit open source, en mode lean, agile et open standards
Construire un produit open source, en mode lean, agile et open standardsConstruire un produit open source, en mode lean, agile et open standards
Construire un produit open source, en mode lean, agile et open standardsNyco
 
Design Sprint, 18 mois et 30 sprints plus tard : joies, détresses et partage ...
Design Sprint, 18 mois et 30 sprints plus tard : joies, détresses et partage ...Design Sprint, 18 mois et 30 sprints plus tard : joies, détresses et partage ...
Design Sprint, 18 mois et 30 sprints plus tard : joies, détresses et partage ...Agile En Seine
 
Integrons en mode continu
Integrons en mode continuIntegrons en mode continu
Integrons en mode continuneuros
 
Methodologies de Developpement Agiles : Scrum et XP
Methodologies de Developpement Agiles : Scrum et XPMethodologies de Developpement Agiles : Scrum et XP
Methodologies de Developpement Agiles : Scrum et XPNicolas Perriault
 
Techdays2011
Techdays2011 Techdays2011
Techdays2011 ALTER WAY
 
No Code et SEO sont ils compatibles ? Philippe Yonnet Neper
No Code et SEO sont ils compatibles ? Philippe Yonnet NeperNo Code et SEO sont ils compatibles ? Philippe Yonnet Neper
No Code et SEO sont ils compatibles ? Philippe Yonnet NeperPhilippe YONNET
 
Refonte intranet du Conseil Général de la Drôme avec le CMS open source Amety...
Refonte intranet du Conseil Général de la Drôme avec le CMS open source Amety...Refonte intranet du Conseil Général de la Drôme avec le CMS open source Amety...
Refonte intranet du Conseil Général de la Drôme avec le CMS open source Amety...Ametys
 
Alphorm.com Formation NodeJS, les fondamentaux
Alphorm.com Formation NodeJS, les fondamentauxAlphorm.com Formation NodeJS, les fondamentaux
Alphorm.com Formation NodeJS, les fondamentauxAlphorm
 
L'Obeya - Agile France 2015
L'Obeya - Agile France 2015L'Obeya - Agile France 2015
L'Obeya - Agile France 2015Operae Partners
 
Méthodes agiles, frameworks javascript: optimisez votre time to market
Méthodes agiles, frameworks javascript: optimisez votre time to marketMéthodes agiles, frameworks javascript: optimisez votre time to market
Méthodes agiles, frameworks javascript: optimisez votre time to marketmichael_bailly
 
Un CRM...sugarCRM
Un CRM...sugarCRMUn CRM...sugarCRM
Un CRM...sugarCRMneuros
 
Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualife
Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualifeSoirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualife
Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualifeTelecomValley
 
Atelier mooc enseigner le langage c en ligne
Atelier   mooc enseigner le langage c en ligneAtelier   mooc enseigner le langage c en ligne
Atelier mooc enseigner le langage c en ligneElla Hamonic
 

Semelhante a Industrialisation PHP (20)

Enib cours c.a.i. web - séance #6 : autour de la webapp
Enib   cours c.a.i. web - séance #6 : autour de la webappEnib   cours c.a.i. web - séance #6 : autour de la webapp
Enib cours c.a.i. web - séance #6 : autour de la webapp
 
Agilité et Logiciels libres même combat ?
Agilité et Logiciels libres même combat ?Agilité et Logiciels libres même combat ?
Agilité et Logiciels libres même combat ?
 
Solution Linux 2012 : Utilisateurs du Libre ne restez pas dans votre coin
Solution Linux 2012 : Utilisateurs du Libre ne restez pas dans votre coinSolution Linux 2012 : Utilisateurs du Libre ne restez pas dans votre coin
Solution Linux 2012 : Utilisateurs du Libre ne restez pas dans votre coin
 
Atelier du web - Analyser sa présence sur le web
Atelier du web - Analyser sa présence sur le webAtelier du web - Analyser sa présence sur le web
Atelier du web - Analyser sa présence sur le web
 
Construire un produit open source, en mode lean, agile et open standards
Construire un produit open source, en mode lean, agile et open standardsConstruire un produit open source, en mode lean, agile et open standards
Construire un produit open source, en mode lean, agile et open standards
 
Design Sprint, 18 mois et 30 sprints plus tard : joies, détresses et partage ...
Design Sprint, 18 mois et 30 sprints plus tard : joies, détresses et partage ...Design Sprint, 18 mois et 30 sprints plus tard : joies, détresses et partage ...
Design Sprint, 18 mois et 30 sprints plus tard : joies, détresses et partage ...
 
Sos ikm-6 juin2008
Sos ikm-6 juin2008Sos ikm-6 juin2008
Sos ikm-6 juin2008
 
Integrons en mode continu
Integrons en mode continuIntegrons en mode continu
Integrons en mode continu
 
Methodologies de Developpement Agiles : Scrum et XP
Methodologies de Developpement Agiles : Scrum et XPMethodologies de Developpement Agiles : Scrum et XP
Methodologies de Developpement Agiles : Scrum et XP
 
Techdays2011
Techdays2011 Techdays2011
Techdays2011
 
No Code et SEO sont ils compatibles ? Philippe Yonnet Neper
No Code et SEO sont ils compatibles ? Philippe Yonnet NeperNo Code et SEO sont ils compatibles ? Philippe Yonnet Neper
No Code et SEO sont ils compatibles ? Philippe Yonnet Neper
 
Ionic
IonicIonic
Ionic
 
Refonte intranet du Conseil Général de la Drôme avec le CMS open source Amety...
Refonte intranet du Conseil Général de la Drôme avec le CMS open source Amety...Refonte intranet du Conseil Général de la Drôme avec le CMS open source Amety...
Refonte intranet du Conseil Général de la Drôme avec le CMS open source Amety...
 
Alphorm.com Formation NodeJS, les fondamentaux
Alphorm.com Formation NodeJS, les fondamentauxAlphorm.com Formation NodeJS, les fondamentaux
Alphorm.com Formation NodeJS, les fondamentaux
 
L'Obeya - Agile France 2015
L'Obeya - Agile France 2015L'Obeya - Agile France 2015
L'Obeya - Agile France 2015
 
Méthodes agiles, frameworks javascript: optimisez votre time to market
Méthodes agiles, frameworks javascript: optimisez votre time to marketMéthodes agiles, frameworks javascript: optimisez votre time to market
Méthodes agiles, frameworks javascript: optimisez votre time to market
 
Un CRM...sugarCRM
Un CRM...sugarCRMUn CRM...sugarCRM
Un CRM...sugarCRM
 
Valider par des tests - Blend
Valider par des tests - BlendValider par des tests - Blend
Valider par des tests - Blend
 
Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualife
Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualifeSoirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualife
Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualife
 
Atelier mooc enseigner le langage c en ligne
Atelier   mooc enseigner le langage c en ligneAtelier   mooc enseigner le langage c en ligne
Atelier mooc enseigner le langage c en ligne
 

Mais de neuros

Solution pour un Réseau Social d'Entreprise (RSE)
Solution pour un Réseau Social d'Entreprise (RSE)Solution pour un Réseau Social d'Entreprise (RSE)
Solution pour un Réseau Social d'Entreprise (RSE)neuros
 
Proteger votre vie privee sur internet
Proteger votre vie privee sur internetProteger votre vie privee sur internet
Proteger votre vie privee sur internetneuros
 
Le pouvoir d'être Visible ou Invisible sur Internet
Le pouvoir d'être Visible ou Invisible  sur InternetLe pouvoir d'être Visible ou Invisible  sur Internet
Le pouvoir d'être Visible ou Invisible sur Internetneuros
 
Vos projets web sur les plateformes ouvertes
Vos projets web sur les plateformes ouvertesVos projets web sur les plateformes ouvertes
Vos projets web sur les plateformes ouvertesneuros
 
Http2 les impacts dans le web
Http2 les impacts dans le webHttp2 les impacts dans le web
Http2 les impacts dans le webneuros
 
Php 7 Think php7
Php 7 Think php7Php 7 Think php7
Php 7 Think php7neuros
 
RGAA 3 dans un Web Accessible
RGAA 3 dans un Web AccessibleRGAA 3 dans un Web Accessible
RGAA 3 dans un Web Accessibleneuros
 
Les effets de la loi Hamon
Les effets de la loi HamonLes effets de la loi Hamon
Les effets de la loi Hamonneuros
 
La sécurité et php
La sécurité et phpLa sécurité et php
La sécurité et phpneuros
 
Les protocoles temps réels
Les protocoles temps réelsLes protocoles temps réels
Les protocoles temps réelsneuros
 
Vectoriel et 3d en html5 - Animation newschool (partie 2)
Vectoriel et 3d en html5 - Animation newschool (partie 2)Vectoriel et 3d en html5 - Animation newschool (partie 2)
Vectoriel et 3d en html5 - Animation newschool (partie 2)neuros
 
Améliorer les performances SQL
Améliorer les performances SQLAméliorer les performances SQL
Améliorer les performances SQLneuros
 
Newschool partie1 methode HTML5
Newschool partie1 methode HTML5Newschool partie1 methode HTML5
Newschool partie1 methode HTML5neuros
 
Effectuer des tests modernes pour drupal
Effectuer des tests modernes pour drupalEffectuer des tests modernes pour drupal
Effectuer des tests modernes pour drupalneuros
 
Integration Drupal systemes d'informations
Integration Drupal systemes d'informationsIntegration Drupal systemes d'informations
Integration Drupal systemes d'informationsneuros
 
La maitrise des contenus hors internet
La maitrise des contenus hors internetLa maitrise des contenus hors internet
La maitrise des contenus hors internetneuros
 
La mémoire et PHP
La mémoire et PHPLa mémoire et PHP
La mémoire et PHPneuros
 
Pourquoi Firefox OS
Pourquoi Firefox OSPourquoi Firefox OS
Pourquoi Firefox OSneuros
 
Neuros Digital
Neuros DigitalNeuros Digital
Neuros Digitalneuros
 
L Importance des forks de MySQL
L Importance des forks de MySQLL Importance des forks de MySQL
L Importance des forks de MySQLneuros
 

Mais de neuros (20)

Solution pour un Réseau Social d'Entreprise (RSE)
Solution pour un Réseau Social d'Entreprise (RSE)Solution pour un Réseau Social d'Entreprise (RSE)
Solution pour un Réseau Social d'Entreprise (RSE)
 
Proteger votre vie privee sur internet
Proteger votre vie privee sur internetProteger votre vie privee sur internet
Proteger votre vie privee sur internet
 
Le pouvoir d'être Visible ou Invisible sur Internet
Le pouvoir d'être Visible ou Invisible  sur InternetLe pouvoir d'être Visible ou Invisible  sur Internet
Le pouvoir d'être Visible ou Invisible sur Internet
 
Vos projets web sur les plateformes ouvertes
Vos projets web sur les plateformes ouvertesVos projets web sur les plateformes ouvertes
Vos projets web sur les plateformes ouvertes
 
Http2 les impacts dans le web
Http2 les impacts dans le webHttp2 les impacts dans le web
Http2 les impacts dans le web
 
Php 7 Think php7
Php 7 Think php7Php 7 Think php7
Php 7 Think php7
 
RGAA 3 dans un Web Accessible
RGAA 3 dans un Web AccessibleRGAA 3 dans un Web Accessible
RGAA 3 dans un Web Accessible
 
Les effets de la loi Hamon
Les effets de la loi HamonLes effets de la loi Hamon
Les effets de la loi Hamon
 
La sécurité et php
La sécurité et phpLa sécurité et php
La sécurité et php
 
Les protocoles temps réels
Les protocoles temps réelsLes protocoles temps réels
Les protocoles temps réels
 
Vectoriel et 3d en html5 - Animation newschool (partie 2)
Vectoriel et 3d en html5 - Animation newschool (partie 2)Vectoriel et 3d en html5 - Animation newschool (partie 2)
Vectoriel et 3d en html5 - Animation newschool (partie 2)
 
Améliorer les performances SQL
Améliorer les performances SQLAméliorer les performances SQL
Améliorer les performances SQL
 
Newschool partie1 methode HTML5
Newschool partie1 methode HTML5Newschool partie1 methode HTML5
Newschool partie1 methode HTML5
 
Effectuer des tests modernes pour drupal
Effectuer des tests modernes pour drupalEffectuer des tests modernes pour drupal
Effectuer des tests modernes pour drupal
 
Integration Drupal systemes d'informations
Integration Drupal systemes d'informationsIntegration Drupal systemes d'informations
Integration Drupal systemes d'informations
 
La maitrise des contenus hors internet
La maitrise des contenus hors internetLa maitrise des contenus hors internet
La maitrise des contenus hors internet
 
La mémoire et PHP
La mémoire et PHPLa mémoire et PHP
La mémoire et PHP
 
Pourquoi Firefox OS
Pourquoi Firefox OSPourquoi Firefox OS
Pourquoi Firefox OS
 
Neuros Digital
Neuros DigitalNeuros Digital
Neuros Digital
 
L Importance des forks de MySQL
L Importance des forks de MySQLL Importance des forks de MySQL
L Importance des forks de MySQL
 

Industrialisation PHP

  • 1. Industrialisation en PHP Christophe Villeneuve 16 Janvier 2013
  • 2. Outils et méthodes ✔ Maîtriser vos cycles de développement ✔ Accélérer votre développement PHP ✔ Utilisez les bons outils et méthodes nAcademy – 16 Janvier 2013
  • 3. PHP à l'ancienne nAcademy – 16 Janvier 2013
  • 4. PHP aujourd'hui nAcademy – 16 Janvier 2013
  • 5. La réalité ✔ Migration de 100 sites en un temps limité ✔ Une Team importante pour maintenir les projets ✔ Nombreux serveurs à maintenir ✔ Beaucoup de projets déployer en même temps ✔ 1 personne à plein temps pour 1 tâche répétitive nAcademy – 16 Janvier 2013
  • 6. Libération du code nAcademy – 16 Janvier 2013
  • 7. Libérez vous du code ✔ Le code doit fonctionner sans vous ✔ Ne vous investissez pas émotionnellement ✔ Appliquer un facteur Bus ✔ Rendez le code accessible aux autres nAcademy – 16 Janvier 2013
  • 8. Outils de convention de code ✔ Choisissez une convention à partir d'un outil ✔ N'inventez pas le votre ✔ Cela apporte de l'unité au travail en équipe ✔ Contrôler votre application nAcademy – 16 Janvier 2013
  • 9. IDE ✔ Choisissez celui qui vous plait ✔ IDE associé au Framework ✔ Il faut au moins ✔ Navigateur de code, Intégration avec un framework ✔ Editeur, débogueur, colorisation syntaxique ✔ Intégration des tests unitaires, intégration du framework ✔ Support des encodages, déploiement nAcademy – 16 Janvier 2013
  • 10. Frameworks ✔ Choisissez en un pour la rapidité de développement ✔ Il doit proposer ✔ Des composants, des conventions, des tests ✔ Communauté, expertise, formations ✔ Bâtissez une couche de code métier nAcademy – 16 Janvier 2013
  • 11. Contrôle de version ✔ Résout les conflits ✔ Permet les versions, Le développement parallèle Le retour en arrière ✔ Stocke et distribue le code nAcademy – 16 Janvier 2013
  • 12. Capitalisez nAcademy – 16 Janvier 2013
  • 13. Capitalisez ✔ Accumulation des connaissances au long du projet ✔ Capturer de l'expérience au fil de l'eau ✔ Penser aux personnes qui vont maintenir le projet nAcademy – 16 Janvier 2013
  • 14. Outils Tests unitaires ✔ Simple Test ✔ PHP Unit ✔ Lemon ✔ Zend_test ✔ Atoum nAcademy – 16 Janvier 2013
  • 15. Pourquoi faire des tests ? ✔ Evitent les régressions ✔ Evitent de vous appeler ✔ Les progrès ✔ Servent de manuel ✔ Aident à la communication nAcademy – 16 Janvier 2013
  • 16. Conception ✔ Description générale de l'application ✔ Liste de tout ce qui est nommé ✔ Vérifier le résultat du code ✔ Diagrammes UML ✔ Modèles de données nAcademy – 16 Janvier 2013
  • 17. Déploiement automatique ✔ Nécessaire pour l'intégration continue ✔ Trop souvent oublié dans le développement ✔ Obligatoire sur les grandes plates-formes nAcademy – 16 Janvier 2013
  • 18. Impliquez les utilisateurs nAcademy – 16 Janvier 2013
  • 19. Impliquez les utilisateurs ✔ Eviter l'effet de tunnel ✔ Eviter la série des questions, des demandes ✔ Transmetter une partie du travail aux clients finaux nAcademy – 16 Janvier 2013
  • 20. Suivi de bug ✔ Connexion au déploiement, aux CVS ✔ Eviter le contact direct (utilisateurs VS développeurs) ✔ Créer le changement de log au fur et à mesure nAcademy – 16 Janvier 2013
  • 21. Tests fonctionnels ✔ Wiki : Utilisation possible pour les non techniques ✔ Capte des cas et des données métiers ✔ Tests directs ✔ Le développement fait le lien entre les tableaux et le code nAcademy – 16 Janvier 2013
  • 22. Intégration continue ✔ Vérification du code en tâche de fond ✔ Mémorise les résultats ✔ Partager avec les équipes, le client nAcademy – 16 Janvier 2013
  • 23. Méthologies ✔ Expliquer comment on fait le code ✔ Impliquer les utilisateurs dans le cycle ✔ Cycles de développement court ✔ Méthodes agiles ✔ Pratiques agiles au menu nAcademy – 16 Janvier 2013
  • 24. Documentation ✔ PHPDoc, commentaires taggés ✔ Développeurs aux utilisateurs ✔ La première version aux développeurs ✔ Ajouter des commentaires ✔ Wiki nAcademy – 16 Janvier 2013
  • 25. Questions ? nAcademy – 16 Janvier 2013