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.
Pourquoi et comment nous relisons ensemble tout le code que nous produisons - retour d'expérience du WebCenter AXA sur la revue de code, accompagnés par Octo.
Présentation donnée en septembre 2009 à un acteur informatique à Bordeaux. J'explique ma vision de l'agilité, des tests et de l'industrialisation au travers de l'exemple PHP.
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 ?
PHP : Une Plateforme Industrialisable Au Service De L'AgilitéPHPPRO
Puisque je suis dans les présentations en ce moment, j'ai décidé de refactorer un draft de présentation que j'avais réalisé pour l'Université du Système d'Information et que finalement j'avais abandonné pour une version plus "light". Attention, c'est une histoire, beaucoup de texte, pressé s'abstenir... ou presque ;)
AFUP Forum PHP 2009 : Oui ! PHP est industriel !PHPPRO
Support de présentation utilisé lors de la session "Oui ! PHP est industriel !" le 13 novembre 2009 à Paris Cité des Sciences pour le forum PHP organisé par l'AFUP
Pourquoi et comment nous relisons ensemble tout le code que nous produisons - retour d'expérience du WebCenter AXA sur la revue de code, accompagnés par Octo.
Présentation donnée en septembre 2009 à un acteur informatique à Bordeaux. J'explique ma vision de l'agilité, des tests et de l'industrialisation au travers de l'exemple PHP.
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 ?
PHP : Une Plateforme Industrialisable Au Service De L'AgilitéPHPPRO
Puisque je suis dans les présentations en ce moment, j'ai décidé de refactorer un draft de présentation que j'avais réalisé pour l'Université du Système d'Information et que finalement j'avais abandonné pour une version plus "light". Attention, c'est une histoire, beaucoup de texte, pressé s'abstenir... ou presque ;)
AFUP Forum PHP 2009 : Oui ! PHP est industriel !PHPPRO
Support de présentation utilisé lors de la session "Oui ! PHP est industriel !" le 13 novembre 2009 à Paris Cité des Sciences pour le forum PHP organisé par l'AFUP
Presentation faite à Agile France en 2011
La revue de code : c’est facile !
Cette présentation est la suite de la session « La revue de code : c’est agile, c’est lean, c’est indispensable ! » présentée à Agile France et Agile Tour en 2010.
Après avoir répondu aux idées reçues sur la revue de code et avoir montré combien une revue de code systématique soutient une démarche agile et lean, cette présentation se focalise sur la mise en place de la revue de code comme étape incontournable du processus de développement.
Nous évoquerons les bonnes pratiques, les difficultés à la mise en place, les pièges à éviter et aussi les outils qui facilitent la revue de code. Une grande partie de la présentation sera dédiée à plusieurs démonstrations, exemples et retours d’expérience.
La revue de code : agile, lean, indispensable !Lucian Precup
Présentation faite à Agile France en 2010 :
La revue de code : agile, lean, indispensable !
Alors que l’intégration continue ou les tests unitaires commencent à rentrer dans les "standards", la revue de code est souvent considérée comme optionnelle. Pourtant, les avantages d’une revue de code systématique sont multiples : détection des anomalies très tôt dans le cycle de développement, formation des membres de l’équipe, partage de la connaissance, meilleures solutions techniques par la conjonction des perspectives développeur/examinateur.
Cette présentation mettra en évidence les avantages de la revue du code en répondant aux idées reçues comme "la revue du code augmente la durée des développements", ou "nos développeurs sont très bons, ils n’ont pas besoin de revue de code" ou encore "il n’y a personne dans l’équipe qui puisse examiner mon code car je suis le seul à connaître Bash et Ant". En évoquant la revue de code dans l’univers open source, les différents moyens de la mettre en œuvre, ses compléments, les différents outils ; et terminant par une démonstration concrète en utilisant Eclipse, Bugzilla et Mylyn, cette présentation vous convaincra de mettre en place la revue de code systématique dans votre équipe sans attendre.
Déroulement :
1/ Avantages
2/ Idées reçues
3/ La revue de code dans l’univers open-source : de la revue du patch par le committeur aux procédures très élaborées comme celles de Mozilla Developer Center.
4/ Moyens de mise en œuvre : à partir de quelle taille des projets, par qui, comment, avant l’intégration ou après, ...
5/ Les compléments de la revue du code : analyse de la qualité du code, scripts pour les normes internes, ...
6/ Comparaison avec d’autres techniques : pair programming, ...
7/ Outils et intégration avec les autres outils de développement ou de gestion du cycle de vie (intégration continue, gestion des anomalies, ...)
8/ Démonstration des avantages sur un exemple concret en utilisant Eclipse, Bugzilla et Mylyn comme outils.
9/ Conclusion : comment la revue de code supporte une démarche agile et lean
Présentation de Sonar 2.0 et plus généralement de l'évolution du métier de développeur au JUG Genève. Bonne ambiance, bonne participation, bon feedback !
Pourquoi est-ce si difficile de concevoir une API ?PALO IT
Alexandre Estela, Leader de Practice Architecture chez PALO IT, sera l’un des speakers lors du Meetup organisé par Paris API. Hébergée chez Mangopay, la session proposera 2 talks autour des APIs !
Au programme
> API Design-First : pourquoi et comment ?
Paris API Meetup est un groupe de personnes qui pensent que les APIs vont révolutionner le web. Ces personnes se rencontrent à Paris pour discuter et partager leurs expériences autour des APIs.
Introduction aux spécifications exécutables (dit aussi atdd, bdd)Jean-Pierre Lambert
Comment s'assurer que tout le monde parle la même langue dans l'équipe ? Et ainsi éviter les retours de recette ?
Utiliser des spécifications exécutables, ou ses cousins le ATDD (Acceptance Test Driven Development) et le BDD (Behavior Driven Development), est un élément de réponse particulièrement pertinent. Cette méthode est également un point d'entrée puissant vers une stratégie d'automatisation des tests.
Dans cette présentation vous découvrirez les tenants et les aboutissants de cette méthode, et repartirez les poches remplies de conseils de mise en place.
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testableAssociation Agile Nantes
Les tests unitaires automatisés sont indispensables à l'agilité. Le TDD est le meilleur moyen d'écrire
ces tests et d'avoir du code testable, mais sa pratique va au-delà, notamment dans l'aide à la
conception du code. Un peu de théorie et beaucoup de démo live pour vous montrer cette pratique.
Formation Extreme Programming, Tests unitaires, travail collaboratifkemenaran
Cette formation développe les méthodes de l'Extreme Programming, introduit les tests unitaires et le Test Driven Developpement sous différents frameworks (dont CakePHP), et présente différents outils de travail collaboratif : SVN, Make, Trac, etc.
Suite à ma lecture de "The Software Craftsman" de Sandro Mancuso, je présente ce qu'est le Software Craftsmanship.
Présentation visible sur YouTube : https://youtu.be/RW0-QIJttBM
Présentation de l'essentiel sur le DoR - Definition Of Ready.
Contenu riche en informations claires et faciles à assimiler provenant directement d'expériences vécues et de situations réelles.
Comment récupérer un projet Web pourri ... et réussir à travailler dessus.Guillaume RICHARD
Présentation pour Blendwebmix 2017, sur le thème de la récupération de projet Web.
Je présente les principales raisons de fails de projets, et comment réussir quand même à travailler dessus.
Forum PHP 2010 - Les frameworks, essentiels dans-l-ecosysteme-php-xavier-laco...Xavier Lacot
Cette présentation a été effectuée dans le cadre du Forum PHP 2010.
Apparus il ya quelques années, les frameworks PHP évoluent rapidement,gagnent en maturité et, avec l'arrivée de PHP 5.3, ils entament une nouvelle mutation.
Après avoir rappelé l'intérêt de l'emploi de frameworks, cette session mettra l'accent sur les critères de choix permettant de départager les différents frameworks du marché, présentera les différences entre les grands frameworks du moment, mettra en évidence les tendances architecturales, et finalement s'attachera à montrer l'enracinement des frameworks dans le paysage professionnel PHP.
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.
Accessibilité numérique et Industrialisation @Orange vincent aniort
les principales actions chez Orange pour industrialiser l'accessibilité numérique :
Outils, méthodes, recommandations, Boosted, initiative open source accessibilité
23ième Séminaire GTA AccessiWeb 29 septembre 2016
Presentation faite à Agile France en 2011
La revue de code : c’est facile !
Cette présentation est la suite de la session « La revue de code : c’est agile, c’est lean, c’est indispensable ! » présentée à Agile France et Agile Tour en 2010.
Après avoir répondu aux idées reçues sur la revue de code et avoir montré combien une revue de code systématique soutient une démarche agile et lean, cette présentation se focalise sur la mise en place de la revue de code comme étape incontournable du processus de développement.
Nous évoquerons les bonnes pratiques, les difficultés à la mise en place, les pièges à éviter et aussi les outils qui facilitent la revue de code. Une grande partie de la présentation sera dédiée à plusieurs démonstrations, exemples et retours d’expérience.
La revue de code : agile, lean, indispensable !Lucian Precup
Présentation faite à Agile France en 2010 :
La revue de code : agile, lean, indispensable !
Alors que l’intégration continue ou les tests unitaires commencent à rentrer dans les "standards", la revue de code est souvent considérée comme optionnelle. Pourtant, les avantages d’une revue de code systématique sont multiples : détection des anomalies très tôt dans le cycle de développement, formation des membres de l’équipe, partage de la connaissance, meilleures solutions techniques par la conjonction des perspectives développeur/examinateur.
Cette présentation mettra en évidence les avantages de la revue du code en répondant aux idées reçues comme "la revue du code augmente la durée des développements", ou "nos développeurs sont très bons, ils n’ont pas besoin de revue de code" ou encore "il n’y a personne dans l’équipe qui puisse examiner mon code car je suis le seul à connaître Bash et Ant". En évoquant la revue de code dans l’univers open source, les différents moyens de la mettre en œuvre, ses compléments, les différents outils ; et terminant par une démonstration concrète en utilisant Eclipse, Bugzilla et Mylyn, cette présentation vous convaincra de mettre en place la revue de code systématique dans votre équipe sans attendre.
Déroulement :
1/ Avantages
2/ Idées reçues
3/ La revue de code dans l’univers open-source : de la revue du patch par le committeur aux procédures très élaborées comme celles de Mozilla Developer Center.
4/ Moyens de mise en œuvre : à partir de quelle taille des projets, par qui, comment, avant l’intégration ou après, ...
5/ Les compléments de la revue du code : analyse de la qualité du code, scripts pour les normes internes, ...
6/ Comparaison avec d’autres techniques : pair programming, ...
7/ Outils et intégration avec les autres outils de développement ou de gestion du cycle de vie (intégration continue, gestion des anomalies, ...)
8/ Démonstration des avantages sur un exemple concret en utilisant Eclipse, Bugzilla et Mylyn comme outils.
9/ Conclusion : comment la revue de code supporte une démarche agile et lean
Présentation de Sonar 2.0 et plus généralement de l'évolution du métier de développeur au JUG Genève. Bonne ambiance, bonne participation, bon feedback !
Pourquoi est-ce si difficile de concevoir une API ?PALO IT
Alexandre Estela, Leader de Practice Architecture chez PALO IT, sera l’un des speakers lors du Meetup organisé par Paris API. Hébergée chez Mangopay, la session proposera 2 talks autour des APIs !
Au programme
> API Design-First : pourquoi et comment ?
Paris API Meetup est un groupe de personnes qui pensent que les APIs vont révolutionner le web. Ces personnes se rencontrent à Paris pour discuter et partager leurs expériences autour des APIs.
Introduction aux spécifications exécutables (dit aussi atdd, bdd)Jean-Pierre Lambert
Comment s'assurer que tout le monde parle la même langue dans l'équipe ? Et ainsi éviter les retours de recette ?
Utiliser des spécifications exécutables, ou ses cousins le ATDD (Acceptance Test Driven Development) et le BDD (Behavior Driven Development), est un élément de réponse particulièrement pertinent. Cette méthode est également un point d'entrée puissant vers une stratégie d'automatisation des tests.
Dans cette présentation vous découvrirez les tenants et les aboutissants de cette méthode, et repartirez les poches remplies de conseils de mise en place.
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testableAssociation Agile Nantes
Les tests unitaires automatisés sont indispensables à l'agilité. Le TDD est le meilleur moyen d'écrire
ces tests et d'avoir du code testable, mais sa pratique va au-delà, notamment dans l'aide à la
conception du code. Un peu de théorie et beaucoup de démo live pour vous montrer cette pratique.
Formation Extreme Programming, Tests unitaires, travail collaboratifkemenaran
Cette formation développe les méthodes de l'Extreme Programming, introduit les tests unitaires et le Test Driven Developpement sous différents frameworks (dont CakePHP), et présente différents outils de travail collaboratif : SVN, Make, Trac, etc.
Suite à ma lecture de "The Software Craftsman" de Sandro Mancuso, je présente ce qu'est le Software Craftsmanship.
Présentation visible sur YouTube : https://youtu.be/RW0-QIJttBM
Présentation de l'essentiel sur le DoR - Definition Of Ready.
Contenu riche en informations claires et faciles à assimiler provenant directement d'expériences vécues et de situations réelles.
Comment récupérer un projet Web pourri ... et réussir à travailler dessus.Guillaume RICHARD
Présentation pour Blendwebmix 2017, sur le thème de la récupération de projet Web.
Je présente les principales raisons de fails de projets, et comment réussir quand même à travailler dessus.
Forum PHP 2010 - Les frameworks, essentiels dans-l-ecosysteme-php-xavier-laco...Xavier Lacot
Cette présentation a été effectuée dans le cadre du Forum PHP 2010.
Apparus il ya quelques années, les frameworks PHP évoluent rapidement,gagnent en maturité et, avec l'arrivée de PHP 5.3, ils entament une nouvelle mutation.
Après avoir rappelé l'intérêt de l'emploi de frameworks, cette session mettra l'accent sur les critères de choix permettant de départager les différents frameworks du marché, présentera les différences entre les grands frameworks du moment, mettra en évidence les tendances architecturales, et finalement s'attachera à montrer l'enracinement des frameworks dans le paysage professionnel PHP.
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.
Accessibilité numérique et Industrialisation @Orange vincent aniort
les principales actions chez Orange pour industrialiser l'accessibilité numérique :
Outils, méthodes, recommandations, Boosted, initiative open source accessibilité
23ième Séminaire GTA AccessiWeb 29 septembre 2016
Comment boucher le trou entre le développement et la production en PHP ? Quels outils de développement, quels outils de suivi de qualité, comment réussir l'intégration continue ? Nous terminerons par les us et coutumes de la mise en production.
Ma stack d'outils agiles, tout un programme !Cédric Leblond
Pour le développement, nous utilisons tous des outils. Leur nombre et surtout leur intégration peuvent même devenir un vrai casse tête. Surtout s'il vous faut supporter des technologies parfois très distinctes ... Je vous propose de monter une plateforme entièrement intégrée et flexible avec Visual Studio Online. Intégrée car toutes les données y sont disponibles. Flexible car ses API permettent de l'étendre avec vos outils agiles préférés (Trello, Zendesk, Jenkins, Jira, ...) et de l’adapter ainsi à vos besoins
La « transformation digitale » est aujourd’hui un sujet majeur de nos entreprises dont on discerne difficilement les contours. Elle se traduit souvent par la mise en œuvre de nombreux chantiers complexes. Nous pensons que l’API est un des sujets indispensables à maîtriser pour réussir cette digitalisation.
Ces dernières années, nous avons beaucoup parlé de ces sujets - API as a product, REST, HATEOAS, OAUTH2, OpenId Connect, Microservices. Nous avons prêché les bonnes pratiques API employées par les Géants du Web et accompagné de nombreuses sociétés dans le cadre de leur stratégie API. Nous vous proposons de prendre un peu de recul et de partager les connaissances ainsi acquises.
Quelles sont les clés d’une stratégie API ? Comment construire efficacement son API ? Quelles sont les erreurs à ne pas commettre ?
Cette session sera l’occasion de revenir sur les points fondamentaux de la mise en oeuvre d’une stratégie API, sur les axes business, techniques et organisationnels.
Rendez-vous le 7 mars pour partager et débattre de ces sujets.
Chaque participant se verra remettre les trois Reference Card API publiées par OCTO :
RESTful API Design
API Architecture Strategy
API Security Principles
Adoption incrémentale des tests dans VS ALMGrégory Ott
Cette présentation a été organisée par le @MUGLyon => http://muglyon.github.io/
Adoption incrémentale des tests dans Visual Studio ALM. Du test exploratoire au pilotage par l'analyse d'impact :
Découvrez comment MTM peut soutenir de façon progressive votre effort de test.
Que vous soyez Développeur et que vous ayez envie de participer à l'effort de test ;
Que vous soyez Analyste métier et que vous souhaitiez capitaliser sur vos critères d'acceptances ;
Que vous soyez Testeur et que vous souhaitez mettre de l'ordre dans votre patrimoine de test ;
Que vous soyez responsable de l'usine logicielle et que vous souhaitiez capitaliser sur votre plateforme préférée ;
Que vous soyez manager et que vous souhaitez améliorer votre visibilité sur les tests ;
Ou que vous ayez simplement envie d'en apprendre plus sur les tests avec la plateforme Visual Studio ALM : cette présentation est faites pour vous !
Adoption incrémentale des tests dans Visual Studio ALM. Du test exploratoire au pilotage par l'analyse d'impact :
Découvrez comment MTM peut soutenir de façon progressive votre effort de test.
Que vous soyez Développeur et que vous ayez envie de participer à l'effort de test ;
Que vous soyez Analyste métier et que vous souhaitiez capitaliser sur vos critères d'acceptances ;
Que vous soyez Testeur et que vous souhaitez mettre de l'ordre dans votre patrimoine de test ;
Que vous soyez responsable de l'usine logicielle et que vous souhaitiez capitaliser sur votre plateforme préférée ;
Que vous soyez manager et que vous souhaitez améliorer votre visibilité sur les tests ;
Ou que vous ayez simplement envie d'en apprendre plus sur les tests avec la plateforme Visual Studio ALM : cette présentation est faites pour vous !
Animé par @gregory_ott
Présentation de Maven et de son utilisation en entreprise dans le cadre du Ch'ti JUG, le 15 juin 2009.
Pourquoi Maven ? Pourquoi l'adopter ? Les bonnes et mauvaise pratiques. Son avenir ...
Similaire à Solutions Linux 2010 - Maîtrise du développement PHP (20)
Gérer ses environnements de développement avec vagrant - PHP Tour Nantes 2012Jean-Marc Fontaine
Gérer un environnement de développement efficace est une tâche plus complexe qu'il n'y paraît à première vue. D'une part parce qu'en réalité nous devons souvent en avoir plusieurs, des projets différents nécessitant généralement des configurations différentes, d'autre part parce que nous travaillons rarement seul sur un projet. Il faut donc trouver un moyen de garder une relative synchronisation entre les environnements des différents développeurs tout en évitant de polluer leurs machines avec des composants trop spécifiques ou incompatibles entre eux. Nous verrons comment Vagrant simplifie cette gestion des environnements de développement. Il s'agit d'un outil basé sur VirtualBox qui permet d'utiliser Puppet ou Chef pour gérer les configurations de machines virtuelles.
Chaque industrie possède un élément clé dans son modèle économique. Dans l'industrie du développement, le facteur de succès est sans conteste le capital humain. Savoir recruter les meilleurs développeurs est une chose difficile mais les amener à réaliser leur plein potentiel l'est tout autant. En ouvrant le code à d'autres développeurs, les revues de code permettent de rompre l'isolement et de partager les connaissances afin de créer des émulations positives au sein des équipes. Nous verrons les gains qu'on peut attendre de cette pratique, les différentes formes (formelles, itératives, pair programming, etc.) qu'elle peut prendre ainsi que les écueils à éviter pour en tirer pleinement parti.
Gestion des dépendances dans un projet PHP - RMLL 2012Jean-Marc Fontaine
Que ce soit un framework, des modules ou des libraires spécialisées, la plupart des application web modernes utilisent du code tiers. Ce code a son propre cycle de développement. Il faut donc pouvoir intégrer régulièrement les nouvelles versions sans pour autant perdre la maîtrise de son propre cycle. La tâche n’est pas aisée si elle n’a pas été été prévue dès la conception de l’application.
Nous verrons différentes approches pour gérer les dépendances dont les gestionnaires de paquet du système d’exploitation, les liens externes dans les dépôts de code, les fichiers PHAR, l’installateur PEAR et le tout récent Composer.
Gérer ses environnements de développement avec Vagrant - RMLL 2012Jean-Marc Fontaine
Gérer un environnement de développement efficace est une tâche plus complexe qu’il n’y paraît à première vue. D’une part parce qu’en réalité nous devons souvent en avoir plusieurs, des projets différents nécessitant généralement des configurations différentes, d’autre part parce que nous travaillons rarement seul sur un projet. Il faut donc trouver un moyen de garder une relative synchronisation entre les environnements des différents développeurs tout en évitant de polluer leurs machines avec des composants trop spécifiques ou incompatibles entre eux.
Nous verrons comment Vagrant simplifie cette gestion des environnements de développement. Il s’agit d’un outil basé sur VirtualBox qui permet d’utiliser Puppet ou Chef pour gérer les configurations de machines virtuelles.
Gestion des dépendances dans un projet PHP - Forum PHP 2012Jean-Marc Fontaine
Que ce soit un framework, des modules ou des libraires spécialisées, la plupart des application web modernes utilisent du code tiers. Ce code a son propre cycle de développement. Il faut donc pouvoir intégrer régulièrement les nouvelles versions sans pour autant perdre la maîtrise de son propre cycle. La tâche n'est pas aisée si elle n'a pas été été prévue dès la conception de l'application. Nous verrons différentes approches pour gérer les dépendances dont les gestionnaires de paquet du système d'exploitation, les liens externes dans les dépôts de code, les fichiers PHAR, l'installateur PEAR et le tout récent Composer.
Que se soit suite à une attaque, une défaillance matérielle ou un bogue applicatif, et malgré toute les précautions prises en amont, aucune application en production n'est à l'abri d'une catastrophe.
L'important est d'avoir un plan de reprise sur incident efficace pour limiter le plus possible l'impact d'un tel incident sur la qualité de service.
Cela passe par une phase de préparation (mise en place de logs, sauvegardes régulière, etc) et par un plan d'action pour le jour J (Communication de crise, diagnostiques, priorisation des tâches, etc.)
Les cycles de développement des applications raccourcissent de plus en plus. La pression se fait plus forte sur les équipes de développement qui sont poussées à développer en mode mercenaire, où seul le résultat immédiat compte. Cette vision est généralement contre-productive sur le long-terme car on passe beaucoup plus de temps à maintenir une application qu'à la développer. Il est donc primordial de s'assurer de sa qualité au delà de l'adéquation avec le besoin fonctionnel.
Cela passe par de nombreux éléments dont bien entendu la qualité du code source mais pas seulement. La présence de documentations pertinentes et à jour, les types et l'étendue des tests mis en place, l'architecture de l'application ou encore sa portabilité sont autant de facteurs clés du succès d'un projet.
Que se soit suite à une attaque, une défaillance matérielle ou un bogue applicatif, et malgré toute les précautions prises en amont, aucune application en production n’est à l’abri d’une catastrophe.
L’important est d’avoir un plan de reprise sur incident efficace pour limiter le plus possible l’impact d’un tel incident sur la qualité de service.
Cela passe par une phase de préparation (mise en place de logs, sauvegardes régulière, etc) et par un plan d’action pour le jour J (Communication de crise, diagnostiques, priorisation des tâches, etc.)
Déboguer une application web peut rapidement devenir fastidieux. L'utilisation d'un débogueur simplifie ce processus mais il n'est pas toujours possible d'en utiliser un. FirePHP est une extension Firefox qui permet de fournir des informations de déboguage sans interférer avec l'affichage de l'application web. Cela est particulièrement pratique pour déboguer de l'Ajax par exemple.
Cette conférence a été donnée en collaboration avec Guillaume Ponçon, auteur du livre "PHP5 Best Practices". Elle évoque les outils et méthodes permettant de développer avec PHP de manière professionnelle.
2. 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 »
16 mars 2010 ALTER WAY - Maîtrise du développement PHP 2
3. 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-php
Blog : http://www.industrialisation-php.com/
16 mars 2010 ALTER WAY - Maîtrise du développement PHP 3
4. 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
16 mars 2010 ALTER WAY - Maîtrise du développement PHP 4
5. 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
16 mars 2010 ALTER WAY - Maîtrise du développement PHP 5
6. 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
16 mars 2010 ALTER WAY - Maîtrise du développement PHP 6
7. 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
16 mars 2010 ALTER WAY - Maîtrise du développement PHP 7
8. 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
16 mars 2010 ALTER WAY - Maîtrise du développement PHP 8
9. 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)
16 mars 2010 ALTER WAY - Maîtrise du développement PHP 9
10. 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
16 mars 2010 ALTER WAY - Maîtrise du développement PHP 10
11. 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
16 mars 2010 ALTER WAY - Maîtrise du développement PHP 11
12. 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
16 mars 2010 ALTER WAY - Maîtrise du développement PHP 12
13. 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
16 mars 2010 ALTER WAY - Maîtrise du développement PHP 13
14. 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)
16 mars 2010 ALTER WAY - Maîtrise du développement PHP 14
15. 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
16 mars 2010 ALTER WAY - Maîtrise du développement PHP 15
16. 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 mars 2010 ALTER WAY - Maîtrise du développement PHP 16
17. 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
16 mars 2010 ALTER WAY - Maîtrise du développement PHP 17
18. 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
16 mars 2010 ALTER WAY - Maîtrise du développement PHP 18
19. 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é
16 mars 2010 ALTER WAY - Maîtrise du développement PHP 19
20. 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
16 mars 2010 ALTER WAY - Maîtrise du développement PHP 20
21. 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)
16 mars 2010 ALTER WAY - Maîtrise du développement PHP 21
22. 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
16 mars 2010 ALTER WAY - Maîtrise du développement PHP 22
23. 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
16 mars 2010 ALTER WAY - Maîtrise du développement PHP 23
24. 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
16 mars 2010 ALTER WAY - Maîtrise du développement PHP 24
25. 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
16 mars 2010 ALTER WAY - Maîtrise du développement PHP 25
26. Merci
Me contacter : jean-marc.fontaine@alterway.fr
Retouver cette présentation :
http://www.slideshare.net/jmf/solutions-linux-
2010maitrisedudeveloppementphp
Des questions ?
16 mars 2010 ALTER WAY - Maîtrise du développement PHP 26