Top Banner
23/09/11 1 Industrialiser PHP Open World Forum 2011
39

Industrialiser PHP - Open World Forum 2011

May 28, 2015

Download

Technology

L’utilisation de PHP est aujourd’hui généralisée dans tous les départements IT. Reconnue pour son évolutivité et son développement rapide, cette technologie doit désormais répondre à de fortes attentes en termes d’exigences et de qualité.

Quels sont les outils nécessaires pour piloter une équipe de développement de taille importante et produire plusieurs centaines de site web par an ? L’heure de l’industrialisation est venue, avec la mise en place d’une planification et d’une organisation de la production de code capables de détecter les bogues avant la publication.

Nous verrons les outils et méthodes nécessaires pour piloter la conception, la production, la publication et la gestion d’équipe.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Industrialiser PHP - Open World Forum 2011

23/09/11 1

Industrialiser PHP

Open World Forum 2011

Page 2: Industrialiser PHP - Open World Forum 2011

23/09/11 2

Titre intercalaire

Page 3: Industrialiser PHP - Open World Forum 2011

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.

Page 4: Industrialiser PHP - Open World Forum 2011

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.

Page 5: Industrialiser PHP - Open World Forum 2011

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 »

Page 6: Industrialiser PHP - Open World Forum 2011

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/

Page 7: Industrialiser PHP - Open World Forum 2011

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

Page 8: Industrialiser PHP - Open World Forum 2011

23/09/11 8

Qu'est-ce que l'industrialisation ?

Page 9: Industrialiser PHP - Open World Forum 2011

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

Page 10: Industrialiser PHP - Open World Forum 2011

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

Page 11: Industrialiser PHP - Open World Forum 2011

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

Page 12: Industrialiser PHP - Open World Forum 2011

23/09/11 12

Mettre en place un environnement de travail

Page 13: Industrialiser PHP - Open World Forum 2011

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)

Page 14: Industrialiser PHP - Open World Forum 2011

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

Page 15: Industrialiser PHP - Open World Forum 2011

1523/09/11

Quelques IDEEclipse

Zend Studio

Netbeans

Aptana

Komodo

Page 16: Industrialiser PHP - Open World Forum 2011

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

Page 17: Industrialiser PHP - Open World Forum 2011

23/09/11 17

Former l'équipe

Page 18: Industrialiser PHP - Open World Forum 2011

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

Page 19: Industrialiser PHP - Open World Forum 2011

23/09/11 19

Eviter de réinventer la roue

Page 20: Industrialiser PHP - Open World Forum 2011

2023/09/11

Eviter de réinventer la roueEviter le syndrôme « Pas inventé ici »

Se concentrer sur sa valeur ajoutée

Page 21: Industrialiser PHP - Open World Forum 2011

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

Page 22: Industrialiser PHP - Open World Forum 2011

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é

Page 23: Industrialiser PHP - Open World Forum 2011

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

Page 24: Industrialiser PHP - Open World Forum 2011

23/09/11 24

S'assurer de la qualité du code

Page 25: Industrialiser PHP - Open World Forum 2011

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é

Page 26: Industrialiser PHP - Open World Forum 2011

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

Page 27: Industrialiser PHP - Open World Forum 2011

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

Page 28: Industrialiser PHP - Open World Forum 2011

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

Page 29: Industrialiser PHP - Open World Forum 2011

2923/09/11

Page 30: Industrialiser PHP - Open World Forum 2011

3023/09/11

Page 31: Industrialiser PHP - Open World Forum 2011

3123/09/11

Page 32: Industrialiser PHP - Open World Forum 2011

23/09/11 32

Automatiser ce qui peut l'être

Page 33: Industrialiser PHP - Open World Forum 2011

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

Page 34: Industrialiser PHP - Open World Forum 2011

3423/09/11

OutilsScripts shell

Phing / Ant

Capistrano / Webistrano

Page 35: Industrialiser PHP - Open World Forum 2011

3523/09/11

Webistrano

Page 36: Industrialiser PHP - Open World Forum 2011

23/09/11 36

Ce n'est pas que de la théorie

Page 37: Industrialiser PHP - Open World Forum 2011

3723/09/11

Alter Way accompagne ses clients pour industrialiser leurs développements

Page 38: Industrialiser PHP - Open World Forum 2011

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

Page 39: Industrialiser PHP - Open World Forum 2011

3923/09/11

Des questions [email protected]