2. 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
3. Qui parle?
Damien Seguy
Services expert en Open Source
Sécurité, performances,
industrialisation
Eleveurs d’elePHPants
damien.seguy@alterway.fr
vendredi 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 mois
vendredi 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 chemin
vendredi 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 autres
vendredi 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_sniffer
vendredi 28 mai 2010
20. 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
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 VCS
vendredi 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 formations
vendredi 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étier
vendredi 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 code
vendredi 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
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
Client
vendredi 28 mai 2010
51. Tests unitaires
PHP Unit : standard de facto
Simple Test, Lemon, Zend_Test, phpt
vendredi 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 WorkBench
vendredi 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 programmation
vendredi 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 architectures
vendredi 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 charge
vendredi 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éploiement
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, concordion
vendredi 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
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 Process
vendredi 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
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 documentation
vendredi 28 mai 2010