Industrialisation en PHPUTT, Troyes, France, 20 mai 2010
vendredi 28 mai 2010
Agenda
Maîtriser les cycles de développements
Accélérer le développement PHP
Connaître et utiliser les outils et méthodes
vendredi 28 mai 2010
Qui parle?
Damien Seguy
Services expert en Open Source
Sécurité, performances,
industrialisation
Eleveurs d’elePHPants
vendredi 28 mai 2010
vendredi 28 mai 2010
Yes, we take
questions
vendredi 28 mai 2010
vendredi 28 mai 2010
PHP romantique
vendredi 28 mai 2010
PHP aujourd’hui
vendredi 28 mai 2010
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 mois
vendredi 28 mai 2010
Trois mantra
vendredi 28 mai 2010
Trois mantra
Libérez-vous du code
vendredi 28 mai 2010
Trois mantra
Libérez-vous du code
Capitalisez
vendredi 28 mai 2010
Trois mantra
Libérez-vous du code
Capitalisez
Impliquez vos utilisateurs
vendredi 28 mai 2010
∆ Conception∆ Déploiement
∆ IDE∆ Convention
∆ Docs
∆ Tests fonctionnels
∆ Tests unitaires
∆ CI
∆ VCS
∆ Méthodes
∆ Framework
∆ Bug Tracking
CodeCapitalisation
Implication
vendredi 28 mai 2010
Libérez-vous
du code
vendredi 28 mai 2010
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 chemin
vendredi 28 mai 2010
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 autres
vendredi 28 mai 2010
Conventions de code
vendredi 28 mai 2010
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_sniffer
vendredi 28 mai 2010
IDE
Choisissez celui qui vous convient le mieux
Évitez les éditeurs trop simples
Netbean / Symfony,
Zend tools / Zend Framework
Komodo / cakePHP
vendredi 28 mai 2010
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 VCS
vendredi 28 mai 2010
vendredi 28 mai 2010
Frameworks
vendredi 28 mai 2010
Frameworks
vendredi 28 mai 2010
Frameworks
vendredi 28 mai 2010
Frameworks
vendredi 28 mai 2010
Frameworks
vendredi 28 mai 2010
Frameworks
vendredi 28 mai 2010
Frameworks
vendredi 28 mai 2010
Frameworks
vendredi 28 mai 2010
Frameworks
vendredi 28 mai 2010
Frameworks
vendredi 28 mai 2010
Frameworks
vendredi 28 mai 2010
Frameworks
vendredi 28 mai 2010
Frameworks
vendredi 28 mai 2010
Frameworks
vendredi 28 mai 2010
Frameworks
vendredi 28 mai 2010
Frameworks
vendredi 28 mai 2010
Frameworks
vendredi 28 mai 2010
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 formations
vendredi 28 mai 2010
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étier
vendredi 28 mai 2010
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 code
vendredi 28 mai 2010
vendredi 28 mai 2010
VCS Développement
Tests
unitaires
Suivi de
bugs
Intégration
continue
Production
VCS
Le code hors du VCS n’existe pas!
vendredi 28 mai 2010
Le coeur du développement
vendredi 28 mai 2010
∆ Conception∆ Déploiement
∆ IDE∆ Convention
∆ Docs
∆ Tests fonctionnels
∆ Tests unitaires
∆ CI
∆ VCS
∆ Méthodes
∆ Framework
∆ Bug Tracking
CodeCapitalisation
Implication
vendredi 28 mai 2010
Capitalisation
vendredi 28 mai 2010
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
Tests
unitaires
vendredi 28 mai 2010
Les tests aident à découpler
CodeProduction
Client
Évite les régressions
Préviens votre rappel
Affiche les progres
Sert de manuel
Aide aux communications
vendredi 28 mai 2010
Tests unitaires
PHP Unit : standard de facto
Simple Test, Lemon, Zend_Test, phpt
vendredi 28 mai 2010
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
Conception
Captures d’écran : WireFraming
Axure, Basalmiq, pencil sketching
Modèle de données
Power Architect, MySQL WorkBench
vendredi 28 mai 2010
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 programmation
vendredi 28 mai 2010
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 architectures
vendredi 28 mai 2010
∆ Conception∆ Déploiement
∆ IDE∆ Convention
∆ Docs
∆ Tests fonctionnels
∆ Tests unitaires
∆ CI
∆ VCS
∆ Méthodes
∆ Framework
∆ Bug Tracking
CodeCapitalisation
Implication
vendredi 28 mai 2010
Impliquer les
utilisateurs
vendredi 28 mai 2010
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 charge
vendredi 28 mai 2010
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éploiement
vendredi 28 mai 2010
vendredi 28 mai 2010
vendredi 28 mai 2010
vendredi 28 mai 2010
vendredi 28 mai 2010
vendredi 28 mai 2010
vendredi 28 mai 2010
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, concordion
vendredi 28 mai 2010
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
vendredi 28 mai 2010
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 Process
vendredi 28 mai 2010
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
vendredi 28 mai 2010
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 documentation
vendredi 28 mai 2010
vendredi 28 mai 2010
Encore plus loin?
Déploiement continu (a la flickr)
Audits croisés
Audits collaboratifs
Analyse statique
vendredi 28 mai 2010
Merci!
http://www.alterway.fr/
publications/
livre-blanc-industrialisation-php
Damien Seguy :
vendredi 28 mai 2010
[email protected] http://www.slideshare.net/dseguy/
vendredi 28 mai 2010
Top Related