Le comportement d’un applicatif PHP au sein d’une infrastructure complexe en production est souvent une zone d’ombre pour les développeurs. La détection et la résolution des problèmes en situations extrêmes restent des tâches ardues.
Quelle stratégie adopter, quels outils mettre en place et comment organiser ses équipes quand PHP est amené à être un socle technique pour des applications critiques ?
2. RMLL 2010 - 06 juillet 2010 2ALTER WAY - Industrialiser ses développements PHP
Qui suis-je ?
Jean-Marc Fontaine
Consultant pour Alter Way Consulting
Responsable du centre de compétences PHP pour Alter
Way Solutions
Formateur pour Alter Way Formation
Professeur vacataire à l'INSSET de Saint Quentin
Membre Actif de l'AFUP
Auteur du blog Industrialisation-PHP.com
Co-auteur du livre blanc « Industrialisation PHP »
3. RMLL 2010 - 06 juillet 2010 3ALTER WAY - Industrialiser ses développements PHP
Livre blanc « Industrialisation PHP »
Co-écrit avec Damien Seguy
Panorama des outils et
méthodes d'industrialisation
des développements PHP
Publié en octobre 2009
Plus de 2 000 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/
4. RMLL 2010 - 06 juillet 2010 4ALTER WAY - Industrialiser ses développements PHP
Plan
Qu'est-ce que l'industrialisation ?
Mettre en place un environnement de travail
Former l'équipe
Eviter de réinventer la roue
S'assurer de la qualité du code
Automatiser ce qui peut l'être
5. RMLL 2010 - 06 juillet 2010 5ALTER WAY - Industrialiser ses développements PHP
Qu'est-ce que l'industrialisation ?
Trois phases pour la reconnaissance d'une technologie
en entreprise :
la phase de tests
la phase de missions critiques
la phase de missions stratégiques
PHP a dépassé le stade de l'expérimentation
6. RMLL 2010 - 06 juillet 2010 6ALTER WAY - Industrialiser ses développements PHP
Qu'est-ce que l'industrialisation ?
Une définition : mise en œuvre de pratiques et d'outils
visant à rendre les logiciels produits plus robustes, tout
en restant dans des délais et des coûts maîtrisés
Pas de solution miracle valable pour tous
Un accompagnement est généralement nécessaire
7. RMLL 2010 - 06 juillet 2010 7ALTER WAY - Industrialiser ses développements PHP
Plan
Qu'est-ce que l'industrialisation ?
Mettre en place un environnement de travail
Former l'équipe
Eviter de réinventer la roue
S'assurer de la qualité du code
Automatiser ce qui peut l'être
8. RMLL 2010 - 06 juillet 2010 8ALTER WAY - Industrialiser ses développements PHP
Dépôt de code
Facilite le travail en équipe
Permet d'avoir un historique du code
Assure la pérennité du code
Deux approches :
Dépôts centralisés (CVS, Subversion)
Dépôts décentralisés (Git, Mercurial, Bazaar)
9. RMLL 2010 - 06 juillet 2010 9ALTER WAY - Industrialiser ses développements PHP
IDE de développement
Editeur de texte sous stéroïdes
Fonctions généralement proposées :
Colorisation syntaxique
Autocomplétion
Intégration aux dépôts de code
Intégration avec un ou plusieurs frameworks
Débogueur
Profileur
Intégration d'outils externes (Tests unitaires, déploiement,
gestion de base de données, éditeur UML, prototypage, etc.)
Standardisation des outils
Intégration dans la chaîne de production
10. RMLL 2010 - 06 juillet 2010 10ALTER WAY - Industrialiser ses développements PHP
Environnements
Trois types d'environnements classiques :
Développement
Pré-production
Production
Développement
En local ou sur un serveur spécialisé
Débogueur et profileur disponibles
Affichage des erreurs
Pré-production
Identique à la production (performances, configuration, données)
Permet de recetter les changements
Production
Optimisé pour la performance et la sécurité
Monitoré pour assurer la qualité de service
11. RMLL 2010 - 06 juillet 2010 11ALTER WAY - Industrialiser ses développements PHP
Plan
Qu'est-ce que l'industrialisation ?
Mettre en place un environnement de travail
Former l'équipe
Eviter de réinventer la roue
S'assurer de la qualité du code
Automatiser ce qui peut l'être
12. RMLL 2010 - 06 juillet 2010 12ALTER WAY - Industrialiser ses développements PHP
Former l'équipe
Formation professionnelle
Permet de rapidement entrer dans une nouvelle technologie
Doit être suivie de mise en pratique pour être efficace
Action ponctuelle
Veille
Permet de maintenir et de développer ses connaissances
Web, livres, magazines, conférences, etc.
Travail régulier et sur le long terme pour être payant
Doit être structurée pour être exploitable par la suite
Mini-conférences internes
Partage de connaissance au sein de l'équipe
Valorisation des personnes
13. RMLL 2010 - 06 juillet 2010 13ALTER WAY - Industrialiser ses développements PHP
Former l'équipe
Programmation en binôme
Pratique prônée par les méthodes agiles
Partage informel des connaissances
Améliore les relations humaines au sein de l'équipe
Changer régulièrement les binômes
Revue de code
Améliore la connaissance du code
Favorise la collaboration et le partage des connaissances
Peut être rendue difficile par des aspects humains (timidité,
orgueil, manque de tact)
14. RMLL 2010 - 06 juillet 2010 14ALTER WAY - Industrialiser ses développements PHP
Plan
Qu'est-ce que l'industrialisation ?
Mettre en place un environnement de travail
Former l'équipe
Eviter de réinventer la roue
S'assurer de la qualité du code
Automatiser ce qui peut l'être
15. RMLL 2010 - 06 juillet 2010 15ALTER WAY - Industrialiser ses développements PHP
Eviter de réinventer la roue
« Si j'ai vu plus loin que les autres,
c'est parce que j'ai été porté par
des épaules de géants. »
Isaac Newton
16. RMLL 2010 - 06 juillet 2010 16ALTER WAY - Industrialiser ses développements PHP
Eviter de réinventer la roue
Eviter le syndrôme « Pas inventé ici »
Se concentrer sur sa valeur ajoutée
Frameworks
Permettent de standardiser et d'accélérer les développements en
donnant un cadre de travail
Librairies
Permettent de rapidement mettre en œuvre des fonctionnalités
plus spécialisées (Génération d'images, de fichiers PDF, etc.)
Design patterns
Solutions éprouvées à des problèmes récurrents
Capitalise sur l'expérience de 40 ans de programmation
Permet de mettre un nom sur une problématique et sa solution
17. RMLL 2010 - 06 juillet 2010 17ALTER WAY - Industrialiser ses développements PHP
Plan
Qu'est-ce que l'industrialisation ?
Mettre en place un environnement de travail
Former l'équipe
Eviter de réinventer la roue
S'assurer de la qualité du code
Automatiser ce qui peut l'être
18. RMLL 2010 - 06 juillet 2010 18ALTER WAY - Industrialiser ses développements PHP
Conventions de codage et d'architecture
Conventions de codage
Chacun a ses habitudes
Des conventions pour que la forme ne brouille pas la
compréhension du fond
Choisir une convention existante
Conventions d'architecture
Définition d'une structure normative pour les projets
Permet un démarrage plus rapide des projets
Permet une meilleure intégration dans les processus de suivi de la
qualité
19. RMLL 2010 - 06 juillet 2010 19ALTER WAY - Industrialiser ses développements PHP
Tests automatisés
Vérifier l'adéquation de l'application avec les
spécifications
Plusieurs types
Unitaires
IHM
Fonctionnels,
De montée en charge
Etc.
Peuvent et doivent être lancés aussi souvent de
possible
Pas d'intervention humaine complexe pour les lancer
Remontée d'alertes en cas de violation des
spécifications
Permet le suivi dans le temps de la qualité du projet
20. RMLL 2010 - 06 juillet 2010 20ALTER WAY - Industrialiser ses développements PHP
Intégration continue
Concept lié aux méthodes agiles
Plus l'intégration des nouveaux développements est
régulière moins elle est coûteuse
Automatisation processus
Permet de s'assurer de la qualité du projet avant
recette manuelle et déploiement en production
Actions courantes :
Exécution des tests
Vérification des conventions de codage
Extraction de métriques (nombre de tests, couverture de code,
taille du code, etc.)
Génération des documentations (technique, utilisateur)
21. RMLL 2010 - 06 juillet 2010 21ALTER WAY - Industrialiser ses développements PHP
Plan
Qu'est-ce que l'industrialisation ?
Mettre en place un environnement de travail
Former l'équipe
Eviter de réinventer la roue
S'assurer de la qualité du code
Automatiser ce qui peut l'être
22. RMLL 2010 - 06 juillet 2010 22ALTER WAY - Industrialiser ses développements PHP
Automatiser ce qui peut l'être
Evite des tâches nécessaires mais répétitives,
fastidieuses et à faible valeur ajoutée
Génération de code
Permet de standardiser le code de l'application
Permet de rendre plus vite autonome une nouvelle personne
Déploiement automatisé
Evite les erreurs humaines
Assure que toutes les étapes seront faites et dans le bon ordre
Permet de déployer plus vite et sur de nombreux serveurs en
parallèle
Tâches répétitives
Création de dépôt de code pour un nouveau projet
Création de branches et de tags
Empaquetage de version
23. RMLL 2010 - 06 juillet 2010 23ALTER WAY - Industrialiser ses développements PHP
Merci
Me contacter :
jean-marc.fontaine@alterway.fr
Des questions ?
Présentation : http://www.slideshare.net/jmf/
Livre blanc : http://www.alterway.fr/publications/livre-blanc-industrialisation-php
Blog : http://www.industrialisation-php.com/
Notas del editor
phase de tests
la techno doit rassurer les utilisateurs quant à sa capacité à rendre des services productifs
atouts de PHP : Open Source, facile à installer et prendre en main, pragmatique
phase de missions critiques
des projets importants s'appuient sur la technologie
Ce n'est plus la techno qui fait la différence mais les pratiques de développement
phase de missions stratégiques
la technologie est adoptée comme norme principale
Il existe des méthodes et des outils standards mais leur choix et leur agencement est au cas par cas
Pas de solution miracle : HipHop est fait pour 1% des usages maximum
Il existe des méthodes et des outils standards mais leur choix et leur agencement est au cas par cas
IDE :
Si un pilote de ligne peut manœuvrer un avion en commandes manuelles, la tâche lui sera grandement facilitée par l'usage des systèmes modernes d'assistance. Il en va de même pour l'édition de code PHP.
IDE :
Si un pilote de ligne peut manœuvrer un avion en commandes manuelles, la tâche lui sera grandement facilitée par l'usage des systèmes modernes d'assistance. Il en va de même pour l'édition de code PHP.
IDE :
Si un pilote de ligne peut manœuvrer un avion en commandes manuelles, la tâche lui sera grandement facilitée par l'usage des systèmes modernes d'assistance. Il en va de même pour l'édition de code PHP.
Un script n'est pas interrompu par une question, un appel téléphonique ou un mail urgent.
Il n'est pas sujet au stress ou à la lassitude.