solutions linux 2010 - maîtrise du développement php

26
Maîtrise du développement PHP Solutions Linux 2010

Upload: jean-marc-fontaine

Post on 05-Dec-2014

1.687 views

Category:

Technology


1 download

DESCRIPTION

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 «bugs» ou comportement 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. Une conférence indispensable pour tout architecte ou DSI souhaitant mettre en place ou sous traiter son infrastructure PHP.

TRANSCRIPT

Page 1: Solutions Linux 2010 - Maîtrise du développement PHP

Maîtrise du développement PHP

Solutions Linux 2010

Page 2: Solutions Linux 2010 - Maîtrise du développement PHP

16 mars 2010 2ALTER WAY - Maîtrise du développement 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 Co-auteur du livre blanc « Industrialisation PHP »

Page 3: Solutions Linux 2010 - Maîtrise du développement PHP

16 mars 2010 3ALTER WAY - Maîtrise du développement 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 1 800 téléchargements Livre en préparation

Téléchargement : http://www.alterway.fr/publications/livre-blanc-industrialisation-phpBlog : http://www.industrialisation-php.com/

Page 4: Solutions Linux 2010 - Maîtrise du développement PHP

16 mars 2010 4ALTER WAY - Maîtrise du développement 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 Partager la connaissance

Page 5: Solutions Linux 2010 - Maîtrise du développement PHP

16 mars 2010 5ALTER WAY - Maîtrise du développement 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 Partager la connaissance

Page 6: Solutions Linux 2010 - Maîtrise du développement PHP

16 mars 2010 6ALTER WAY - Maîtrise du développement PHP

Qu'est-ce que l'industrialisation ?

PHP a dépassé le stade de l'expérimentation 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

Page 7: Solutions Linux 2010 - Maîtrise du développement PHP

16 mars 2010 7ALTER WAY - Maîtrise du développement 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

Page 8: Solutions Linux 2010 - Maîtrise du développement PHP

16 mars 2010 8ALTER WAY - Maîtrise du développement 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 Partager la connaissance

Page 9: Solutions Linux 2010 - Maîtrise du développement PHP

16 mars 2010 9ALTER WAY - Maîtrise du développement 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)

Page 10: Solutions Linux 2010 - Maîtrise du développement PHP

16 mars 2010 10ALTER WAY - Maîtrise du développement 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

Page 11: Solutions Linux 2010 - Maîtrise du développement PHP

16 mars 2010 11ALTER WAY - Maîtrise du développement 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

Page 12: Solutions Linux 2010 - Maîtrise du développement PHP

16 mars 2010 12ALTER WAY - Maîtrise du développement 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 Partager la connaissance

Page 13: Solutions Linux 2010 - Maîtrise du développement PHP

16 mars 2010 13ALTER WAY - Maîtrise du développement 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

Page 14: Solutions Linux 2010 - Maîtrise du développement PHP

16 mars 2010 14ALTER WAY - Maîtrise du développement 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)

Page 15: Solutions Linux 2010 - Maîtrise du développement PHP

16 mars 2010 15ALTER WAY - Maîtrise du développement 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 Partager la connaissance

Page 16: Solutions Linux 2010 - Maîtrise du développement PHP

16 mars 2010 16ALTER WAY - Maîtrise du développement PHP

Eviter de réinventer la roue

« Si j'ai vu plus loin que les autres, c'est parce que j'ai été porté pardes épaules de géants. »Isaac Newton

Page 17: Solutions Linux 2010 - Maîtrise du développement PHP

16 mars 2010 17ALTER WAY - Maîtrise du développement PHP

Eviter de réinventer la roue

Eviter le syndrôme « Pas inventé ici » 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

Page 18: Solutions Linux 2010 - Maîtrise du développement PHP

16 mars 2010 18ALTER WAY - Maîtrise du développement 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 Partager la connaissance

Page 19: Solutions Linux 2010 - Maîtrise du développement PHP

16 mars 2010 19ALTER WAY - Maîtrise du développement 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é

Page 20: Solutions Linux 2010 - Maîtrise du développement PHP

16 mars 2010 20ALTER WAY - Maîtrise du développement 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

Page 21: Solutions Linux 2010 - Maîtrise du développement PHP

16 mars 2010 21ALTER WAY - Maîtrise du développement 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)

Page 22: Solutions Linux 2010 - Maîtrise du développement PHP

16 mars 2010 22ALTER WAY - Maîtrise du développement 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 Partager la connaissance

Page 23: Solutions Linux 2010 - Maîtrise du développement PHP

16 mars 2010 23ALTER WAY - Maîtrise du développement 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

Page 24: Solutions Linux 2010 - Maîtrise du développement PHP

16 mars 2010 24ALTER WAY - Maîtrise du développement 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 Partager la connaissance

Page 25: Solutions Linux 2010 - Maîtrise du développement PHP

16 mars 2010 25ALTER WAY - Maîtrise du développement PHP

Partager la connaissance

Se prémunir des indisponibilités, des départs Faciliter l'intégration de nouvelles personnes Programmation en binôme Revue de code Documentations

Architecture Technique Utilisateur

Commentaires dans le code Format PHPDOC Un commentaire inutile est pire que pas de commentaire

Page 26: Solutions Linux 2010 - Maîtrise du développement PHP

16 mars 2010 26ALTER WAY - Maîtrise du développement PHP

Merci

Me contacter : [email protected] Retouver cette présentation :

http://www.slideshare.net/jmf/solutions-linux-2010maitrisedudeveloppementphp

Des questions ?