Outils et
méthodes :
prenez de
bonnes habitudes
  9 février 2011
  Damien Seguy
  Consultant Open Source
  Alter Way Consulting
Agenda


Maîtrisez vos cycles de développement
Accélérez votre développement PHP
Utilisez les bons outils et méthodes
Qui?

 Damien Seguy
 Consultant Open Source
 Sécurité, industrialisation
 damien.seguy@alterway.fr
Yes,
we take
questions
PHP à l’ancienne
PHP aujourd’hui
La réalité

 65 portails à migrer en 6 mois
 6 collaborateurs pour MAJ 350 intranets
 120 sites d’émission par an, sur 150 serveurs
 Application ouverte pour une ville : doit couvrir 12 villes
 pour Pâques, et ouvrir 2 pays l’an prochain
 1 employé à temps plein pour les déploiements
Trois mantra


Libérez vous du code
Capitalisez
Impliquez vos utilisateurs
∆ Convention
 ∆ IDE         ∆ Conception
 ∆ Framework  ∆ Déploiement
               ∆ VCS     Capitalisation
Code
                       ∆ Tests unitaires
           ∆ CI
         ∆ Docs         ∆ Bug
       ∆ Méthodes      Tracking

          ∆ Tests fonctionnels
               Implication
Libérez vous
du code
Libérez vous du code

Elevez votre facteur bus
  Ne soyez plus le seul
Facteur WTF trop élevé?
  Programmez comme les autres
Limitez le temps en production
  Arrangez vous pour que la production ne vous trouve
  pas
Libérez vous du code


Le code fonctionne sans vous
Ne vous investissez pas émotionnellement
Rendez le code accessible aux autres
Conventions de code

PEAR, Zend
Frameworks,
Symfony...
Choisissez en un
Utilisez en un
Unifiez
Code_sniffer
IDE

Choisissez celui qui vous plait
Netbean / Symfony, Zend tools, Komodo / cakePHP
Navigateur de code, éditeur, débogueur, intégration
des tests unitaires, intégration du framework,
déploiement
Frameworks


Choisissez en un, pour la vitesse de développement
Composants, conventions, mise en place, tests
Communauté, expertise, formations
Bâtissez une couche métier
Contrôle de version

 Résout les conflits
 Permet les versions, le développement paralèlle,
 le retour en arrière
 Stocke et distribue le code
 «Le code qui n’est pas dans SVN n’existe pas»
Développement



 Tests
                                 Production
unitaires
                   Source




     Suivi des              Intégration
      bugs                   continue
Capitalisez
Capitalisation


 Accumulation des connaissances au long du projet
 Capture de l’expérience au fil de l’eau
 Eviter les culs de sac
   Pensez à celui qui va le réutiliser
Tests unitaires

 PHP Unit, Simple Test, Lemon, Zend_Test, phpt
Les tests aident

 Évitent les régressions           Production
                           Code
 Évitent de vous appeler
 Montre les progrès
 Servent de manuel
 Aident la communication
                                  Client
Conception
Diagrammes de classe, schéma de base, navigation
Décrit l’organisation générale
Liste tout ce qui doit être nommé
  Classe, méthodes, constantes, SESSION, inclusion...
Vérifiez le résultat dans le code
ArgoUML, StarUML, PowerArchitect, Visual Studio,
Microsoft Visio
Déploiement automatique


Nécessaire pour l’intégration continue
Trop souvent oublié dans le développement
Obligatoire sur les grandes plates-formes
Impliquez les utilisateurs
Je suis Spartacus!
Impliquer les utilisateurs


 Évitez l’effet tunnel
 Affronter le tsunami des questions, demandes
   bugs, changements, ajouts, adaptation, accelération
 Transmettez une partie du travail aux clients finaux
Suivi de bug


 Connexion au déploiement, au VCS
 Évite le contact direct des utilisateurs avec les
 développeurs
 Crée le changelog au fur et à mesure
Suivi de bug


 Connexion au déploiement, au VCS
 Évite le contact direct des utilisateurs avec les
 développeurs
 Crée le changelog au fur et à mesure
Tests fonctionnels

 Base de wiki : accessibles aux non techniques
 Capte des cas et des données métiers
 Tests a priori, tests directs
 Les développeurs font le lien entre les tableaux et le
 code
GreenPepper
GreenPepper
GreenPepper
GreenPepper
GreenPepper
Intégration continue

 Vérification continue du code
 Historise les résultats
   Compilation, code sniffer, tests unitaires
   Log, inclusion, performances, métriques
 À partager avec clients, équipiers,...
Méthodologies

Explique comment on produit du code
Implique les utilisateurs dans le cycle
Cycles de développement court : on fait, on peaufine
Méthodes agiles :
  SCRUM, XP, Lean SD, Open Unified Process
Les pratiques agiles au menu
Documentation

PHPDoc, TFS, Commentaires taggés
Des développeurs aux utilisateurs
La première version aux développeurs
Ajoutez des commentaires
Faites en un wiki
Commentags
Et encore plus loin?


 Déploiement continue (a la flickr)
 Audits croisés
 Audits collaboratifs
 Analyse statique
damien.seguy@alterway.fr
http://www.slideshare.net/dseguy/
Remerciements
Loïc Le Fur
Romain Bourdon
Keith Casey
Alter Way Group
Morguefile
Toutes les marques citées appartiennent à leur
propriétaire.

Techdays2011

  • 1.
    Outils et méthodes : prenezde bonnes habitudes 9 février 2011 Damien Seguy Consultant Open Source Alter Way Consulting
  • 2.
    Agenda Maîtrisez vos cyclesde développement Accélérez votre développement PHP Utilisez les bons outils et méthodes
  • 3.
    Qui? Damien Seguy Consultant Open Source Sécurité, industrialisation damien.seguy@alterway.fr
  • 5.
  • 6.
  • 7.
  • 8.
    La réalité 65portails à migrer en 6 mois 6 collaborateurs pour MAJ 350 intranets 120 sites d’émission par an, sur 150 serveurs Application ouverte pour une ville : doit couvrir 12 villes pour Pâques, et ouvrir 2 pays l’an prochain 1 employé à temps plein pour les déploiements
  • 9.
    Trois mantra Libérez vousdu code Capitalisez Impliquez vos utilisateurs
  • 10.
    ∆ Convention ∆IDE ∆ Conception ∆ Framework ∆ Déploiement ∆ VCS Capitalisation Code ∆ Tests unitaires ∆ CI ∆ Docs ∆ Bug ∆ Méthodes Tracking ∆ Tests fonctionnels Implication
  • 11.
  • 12.
    Libérez vous ducode Elevez votre facteur bus Ne soyez plus le seul Facteur WTF trop élevé? Programmez comme les autres Limitez le temps en production Arrangez vous pour que la production ne vous trouve pas
  • 13.
    Libérez vous ducode Le code fonctionne sans vous Ne vous investissez pas émotionnellement Rendez le code accessible aux autres
  • 14.
    Conventions de code PEAR,Zend Frameworks, Symfony... Choisissez en un Utilisez en un Unifiez Code_sniffer
  • 15.
    IDE Choisissez celui quivous plait Netbean / Symfony, Zend tools, Komodo / cakePHP Navigateur de code, éditeur, débogueur, intégration des tests unitaires, intégration du framework, déploiement
  • 17.
    Frameworks Choisissez en un,pour la vitesse de développement Composants, conventions, mise en place, tests Communauté, expertise, formations Bâtissez une couche métier
  • 18.
    Contrôle de version Résout les conflits Permet les versions, le développement paralèlle, le retour en arrière Stocke et distribue le code «Le code qui n’est pas dans SVN n’existe pas»
  • 19.
    Développement Tests Production unitaires Source Suivi des Intégration bugs continue
  • 20.
  • 21.
    Capitalisation Accumulation desconnaissances au long du projet Capture de l’expérience au fil de l’eau Eviter les culs de sac Pensez à celui qui va le réutiliser
  • 22.
    Tests unitaires PHPUnit, Simple Test, Lemon, Zend_Test, phpt
  • 23.
    Les tests aident Évitent les régressions Production Code Évitent de vous appeler Montre les progrès Servent de manuel Aident la communication Client
  • 24.
    Conception Diagrammes de classe,schéma de base, navigation Décrit l’organisation générale Liste tout ce qui doit être nommé Classe, méthodes, constantes, SESSION, inclusion... Vérifiez le résultat dans le code ArgoUML, StarUML, PowerArchitect, Visual Studio, Microsoft Visio
  • 25.
    Déploiement automatique Nécessaire pourl’intégration continue Trop souvent oublié dans le développement Obligatoire sur les grandes plates-formes
  • 26.
  • 27.
    Impliquer les utilisateurs Évitez l’effet tunnel Affronter le tsunami des questions, demandes bugs, changements, ajouts, adaptation, accelération Transmettez une partie du travail aux clients finaux
  • 28.
    Suivi de bug Connexion au déploiement, au VCS Évite le contact direct des utilisateurs avec les développeurs Crée le changelog au fur et à mesure
  • 29.
    Suivi de bug Connexion au déploiement, au VCS Évite le contact direct des utilisateurs avec les développeurs Crée le changelog au fur et à mesure
  • 30.
    Tests fonctionnels Basede wiki : accessibles aux non techniques Capte des cas et des données métiers Tests a priori, tests directs Les développeurs font le lien entre les tableaux et le code
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 37.
    Intégration continue Vérificationcontinue du code Historise les résultats Compilation, code sniffer, tests unitaires Log, inclusion, performances, métriques À partager avec clients, équipiers,...
  • 38.
    Méthodologies Explique comment onproduit du code Implique les utilisateurs dans le cycle Cycles de développement court : on fait, on peaufine Méthodes agiles : SCRUM, XP, Lean SD, Open Unified Process Les pratiques agiles au menu
  • 39.
    Documentation PHPDoc, TFS, Commentairestaggés Des développeurs aux utilisateurs La première version aux développeurs Ajoutez des commentaires Faites en un wiki
  • 40.
  • 41.
    Et encore plusloin? Déploiement continue (a la flickr) Audits croisés Audits collaboratifs Analyse statique
  • 42.
  • 43.
    Remerciements Loïc Le Fur RomainBourdon Keith Casey Alter Way Group Morguefile Toutes les marques citées appartiennent à leur propriétaire.