23/09/11 1 Industrialiser PHP Open World Forum 2011
May 28, 2015
23/09/11 1
Industrialiser PHP
Open World Forum 2011
23/09/11 2
Titre intercalaire
323/09/11
Lorem ipsumNullam vitae leo dolor, nec ornare mauris.
Aliquam metus libero, mollis id tincidunt sit amet, laoreet ut urna. Duis tincidunt interdum ultricies.
Suspendisse potenti. Nulla dignissim nulla ac felis aliquet rutrum.
Quisque imperdiet justo et erat ornare vitae rhoncus massa faucibus.
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
23/09/11 4
Lorem ipsumLorem ipsum dolor sit amet, consectetur adipiscing elit. Ut id orci eu nisl
cursus imperdiet quis ut orci. Curabitur ac sapien erat. Nam quis enim lectus, eget auctor nulla. Maecenas hendrerit placerat neque ut porttitor. Integer rutrum, nulla non tristique varius, nisi nunc ultrices justo, eu mollis augue tellus viverra enim. Cras id enim diam. Donec sed urna eu velit imperdiet posuere. Aliquam venenatis quam in ipsum dignissim interdum.
Nullam vitae leo dolor, nec ornare mauris. Aliquam metus libero, mollis id tincidunt sit amet, laoreet ut urna. Duis tincidunt interdum ultricies. Suspendisse potenti. Nulla dignissim nulla ac felis aliquet rutrum. Quisque imperdiet justo et erat ornare vitae rhoncus massa faucibus.
523/09/11
Qui suis-je ?Jean-Marc Fontaine
Consultant pour Alter Way Consulting
Président de l'AFUP (Association Française des Utilisateurs de PHP)
Auteur du blog Industrialisation-PHP.com
Co-auteur du livre blanc « Industrialisation PHP »
623/09/11
Livre blanc Industrialisation PHPPanorama des outils et méthodes
d'industrialisation des développements PHP
Publié en octobre 2009
Plus de 2 500 téléchargements
Téléchargement : http://www.alterway.fr/publications/livre-blanc-industrialisation-phpBlog : http://www.industrialisation-php.com/
723/09/11
Ordre du jourQu'est-ce que l'industrialisation ?
Mettre en place un environnement de travail
Former l'équipe
Éviter de réinventer la roue
S'assurer de la qualité du code
Automatiser ce qui peut l'être
Ce n'est pas que de la théorie
23/09/11 8
Qu'est-ce que l'industrialisation ?
923/09/11
ConstatL'utilisation de PHP en entreprise hors des directions métiers et gouvernée
par la DSI est relativement récente.
Les DSI se retrouvent désormais confrontées à différentes problématiques :
Applicatifs hétérogènes
Bonnes pratiques de développement non définies ou dépendantes des applicatifs
Qualité de code disparate
Base de code non testée de manière automatique
Pas ou peu d'indicateurs de qualité, de performance, de maintenabilité du code
Pas de processus unifié sur l'ensemble des acteurs
Pression continue de la production
1023/09/11
ObjectifsGagner du temps en automatisant au maximum toutes les tâches récurrentes
Gagner en qualité (documentation, tests unitaires, normes, respect des licences, mutualisation…)
Gagner en réactivité
Raccourcir les cycles de mise en production
Suivre l’évolution des projets par des indicateurs clés
1123/09/11
Mise en œuvrePas de solution miracle valable pour tous
Les outils sont nombreux et dissociés
Il faut du temps pour les mettre en place et les entretenir
Un accompagnement est souvent nécessaire
23/09/11 12
Mettre en place un environnement de travail
1323/09/11
Dépôt de codeFacilite 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)
1423/09/11
IDEÉditeur 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
1523/09/11
Quelques IDEEclipse
Zend Studio
Netbeans
Aptana
Komodo
1623/09/11
EnvironnementsDé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é
Supervisé pour assurer la qualité de service
23/09/11 17
Former l'équipe
1823/09/11
Former l'équipeFormation 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
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
23/09/11 19
Eviter de réinventer la roue
2023/09/11
Eviter de réinventer la roueEviter le syndrôme « Pas inventé ici »
Se concentrer sur sa valeur ajoutée
2123/09/11
FrameworksEnsemble de composants éprouvés et prêts à l'emploi
Cœur technique des projets
Simplifient, standardisent et accélèrent les développements
Imposent des règles strictes de développement
2223/09/11
LibrariesPermettent de rapidement mettre en œuvre des fonctionnalités plus
spécialisées (Génération d'images, de fichiers PDF, etc.)
Attention à la qualité et à la pérennité
2323/09/11
Design patternsSolutions é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
23/09/11 24
S'assurer de la qualité du code
2523/09/11
ConventionsConventions 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é
2623/09/11
Tests automatisésVérifier l'adéquation de l'application avec les spécifications
Plusieurs types
Unitaires (PHPUnit, SimpleTest, Atoum)
IHM (Selenium, Watir, Sikuli)
Fonctionnels (GreenPepper)
De montée en charge (JMeter)
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
2723/09/11
Analyse statique du codeAnalyze du code sans le faire fonctionner
Permet de :
Vérifier la syntaxe
Recueillir des métriques
Analyser les flux de données
Outils :
Cornac (Projet Open Source créé par Alter Way)
PHP_CodeSniffer
phploc
Phpcpd
PHP_Depend
2823/09/11
Intégration continuePermet de valider, vérifier au fil de l'eau toutes les modifications effectuées
sur un code source.
Permet de limiter les effets négatifs des cycles en V.
Elle met en œuvre tous les outils et concepts vus précédemment
Tous les processus sont automatisés
La qualité du code est en permanence mesurée (couverture des tests unitaires et fonctionnels)
Les indicateurs sont rassemblés dans une interface de présentation
La documentation est aussi générée automatiquement dans ces processus
2923/09/11
3023/09/11
3123/09/11
23/09/11 32
Automatiser ce qui peut l'être
3323/09/11
Automatiser ce qui peut l'êtreÉvite 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é
Évite 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
3423/09/11
OutilsScripts shell
Phing / Ant
Capistrano / Webistrano
3523/09/11
Webistrano
23/09/11 36
Ce n'est pas que de la théorie
3723/09/11
Alter Way accompagne ses clients pour industrialiser leurs développements
3823/09/11
Parcours de formation de 4 mois :
Un tronc commun : les stagiaires bénéficieront d’un cursus initiatique dispensé par l’entité Formation d’Alter Way (organisme de formation leader sur la formation professionnelle Open Source) qui leur permettra d’acquérir une vision globale du secteur.
L’apprentissage d’un métier : à l’issue de ce cursus commun les stagiaires auront la possibilité de se diriger vers le métier qui leur convient le mieux : développement, technicien système et réseau, recherche & développement, chef de projet web, etc.
La contribution : les stagiaires, encadrés par des collaborateurs seniors, participeront aux projets contributifs d’Alter Way.
http://www.alterway.fr/la-libre-academie
3923/09/11
Des questions [email protected]