industrialisation en php

Post on 20-Jun-2015

769 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Outils et méthodes modernes en PHP

TRANSCRIPT

Industrialisation en PHPUTT, Troyes, France, 20 mai 2010

vendredi 28 mai 2010

Agenda

Maîtriser les cycles de développements

Accélérer le développement PHP

Connaître et utiliser les outils et méthodes

vendredi 28 mai 2010

Qui parle?

Damien Seguy

Services expert en Open Source

Sécurité, performances,

industrialisation

Eleveurs d’elePHPants

damien.seguy@alterway.fr

vendredi 28 mai 2010

vendredi 28 mai 2010

Yes, we take

questions

vendredi 28 mai 2010

vendredi 28 mai 2010

PHP romantique

vendredi 28 mai 2010

PHP aujourd’hui

vendredi 28 mai 2010

Sur le terrain

65 portails à refaire en 6 mois

6 personnes pour mettre à niveau 350 intranets

120 événements par an, sur 150 serveurs

Une application sur une ville : 12 villes pour Noel,

2 pays l’an prochain.

Un employé à temps plein pour le déploiement

Multiplier les commandes par 6 en 2 mois

vendredi 28 mai 2010

Trois mantra

vendredi 28 mai 2010

Trois mantra

Libérez-vous du code

vendredi 28 mai 2010

Trois mantra

Libérez-vous du code

Capitalisez

vendredi 28 mai 2010

Trois mantra

Libérez-vous du code

Capitalisez

Impliquez vos utilisateurs

vendredi 28 mai 2010

∆ Conception∆ Déploiement

∆ IDE∆ Convention

∆ Docs

∆ Tests fonctionnels

∆ Tests unitaires

∆ CI

∆ VCS

∆ Méthodes

∆ Framework

∆ Bug Tracking

CodeCapitalisation

Implication

vendredi 28 mai 2010

Libérez-vous

du code

vendredi 28 mai 2010

Libérez vous du code

Le facteur bus

Ne soyez pas le seul

Le facteur WTF

Écrivez du code qui peut être compris

50% du temps consacré à la production

Ne vous mettez pas en travers du chemin

vendredi 28 mai 2010

Libérez vous du code

S’arranger pour que l’on puisse travailler sans vous

Ne vous investissez pas dans votre code

Rendez votre code accessible aux autres

vendredi 28 mai 2010

Conventions de code

vendredi 28 mai 2010

Conventions de code

Il en existe de nombreuses

PEAR, Zend Frameworks, Symfony...

Choisissez en une

Évitez de créer la votre

Cela apporte de l’unité au travail en équipe

Pour vérifier son application

Code_sniffer

vendredi 28 mai 2010

IDE

Choisissez celui qui vous convient le mieux

Évitez les éditeurs trop simples

Netbean / Symfony,

Zend tools / Zend Framework

Komodo / cakePHP

vendredi 28 mai 2010

IDE

Il faut au moins

Navigateur de code, intégration avec un framework

Editeur, coloration syntaxique, support des

encodages

intégration avec les tests unitaires

interface avec VCS

vendredi 28 mai 2010

vendredi 28 mai 2010

Frameworks

vendredi 28 mai 2010

Frameworks

vendredi 28 mai 2010

Frameworks

vendredi 28 mai 2010

Frameworks

vendredi 28 mai 2010

Frameworks

vendredi 28 mai 2010

Frameworks

vendredi 28 mai 2010

Frameworks

vendredi 28 mai 2010

Frameworks

vendredi 28 mai 2010

Frameworks

vendredi 28 mai 2010

Frameworks

vendredi 28 mai 2010

Frameworks

vendredi 28 mai 2010

Frameworks

vendredi 28 mai 2010

Frameworks

vendredi 28 mai 2010

Frameworks

vendredi 28 mai 2010

Frameworks

vendredi 28 mai 2010

Frameworks

vendredi 28 mai 2010

Frameworks

vendredi 28 mai 2010

Frameworks

Choisissez en un

Pour accélérer le développement

Pour son coté agréable et pratique

Il doit avoir

Des composants, des conventions, des tests

unitaires, des utilitaires de mise en place

Une communauté, des experts, des formations

vendredi 28 mai 2010

Au dela des frameworks

Les frameworks sont généralistes et techniques

Bâtissez votre propre bibliothèque métier

Nous verrons bientôt des bibliothèques métier

vendredi 28 mai 2010

VCS

Version Control System

Subversion, git, CVS, mercurial

Résolution des conflits

Permet le développement parallèle,

le retour en arrière, les versions.

Stocke et distribue le code

vendredi 28 mai 2010

vendredi 28 mai 2010

VCS Développement

Tests

unitaires

Suivi de

bugs

Intégration

continue

Production

VCS

Le code hors du VCS n’existe pas!

vendredi 28 mai 2010

Le coeur du développement

vendredi 28 mai 2010

∆ Conception∆ Déploiement

∆ IDE∆ Convention

∆ Docs

∆ Tests fonctionnels

∆ Tests unitaires

∆ CI

∆ VCS

∆ Méthodes

∆ Framework

∆ Bug Tracking

CodeCapitalisation

Implication

vendredi 28 mai 2010

Capitalisation

vendredi 28 mai 2010

Capitalisation

Accumuler à toutes les phases du projet

Capturer l’information au fil de l’eau

Evitez les culs de sacs

Toujours se demander qui va l’utiliser?

vendredi 28 mai 2010

Tests

unitaires

vendredi 28 mai 2010

Les tests aident à découpler

CodeProduction

Client

Évite les régressions

Préviens votre rappel

Affiche les progres

Sert de manuel

Aide aux communications

vendredi 28 mai 2010

Tests unitaires

PHP Unit : standard de facto

Simple Test, Lemon, Zend_Test, phpt

vendredi 28 mai 2010

Conception

Description générale de l’application

Documents très variés

Diagrammes d’architecture

Visio, Omnigraffle, Dia

Diagrammes UML

Diagrammes de classes, Cas d’utilisation

StarUML, ArgoUML, BOUML,

vendredi 28 mai 2010

Conception

Captures d’écran : WireFraming

Axure, Basalmiq, pencil sketching

Modèle de données

Power Architect, MySQL WorkBench

vendredi 28 mai 2010

Conception

Ayez un inventaire

Classes, méthodes, constantes, $_SESSION,

inclusions, fichiers, dossiers,...

Vérifiez l’utilisation réelle

Prévoyez de faire des allers-retours avec la réalité

La conception n’est pas la programmation

vendredi 28 mai 2010

Déploiement automatisé

Phing, maven, ant, pear

Nécessaire pour l’intégration continue

L’aspect le plus souvent négligé du développement

Obligatoire pour les grandes architectures

vendredi 28 mai 2010

∆ Conception∆ Déploiement

∆ IDE∆ Convention

∆ Docs

∆ Tests fonctionnels

∆ Tests unitaires

∆ CI

∆ VCS

∆ Méthodes

∆ Framework

∆ Bug Tracking

CodeCapitalisation

Implication

vendredi 28 mai 2010

Impliquer les

utilisateurs

vendredi 28 mai 2010

Impliquer les utilisateurs

Eviter l’effet tunnel

Savoir affronter le tsunami des questions

bugs, changements, nouveautés, adaptations,

accélérations, etc.

Rendre les utilisateurs autonome,

faire qu’ils se prennent en charge

vendredi 28 mai 2010

Bug tracker

Mantis, Trac, Redline, Jira

Rassembler les retours des utilisateurs et clients en un

seul endroit

Suivre leur évolution jusqu’à la conclusion

Permet de produire le changelog

A relier avec le VCS et le déploiement

vendredi 28 mai 2010

vendredi 28 mai 2010

vendredi 28 mai 2010

vendredi 28 mai 2010

vendredi 28 mai 2010

vendredi 28 mai 2010

vendredi 28 mai 2010

Tests fonctionnels

A base de wiki : accessibles aux non-techniciens

Collecte de tests métiers, et non plus techniques

Tests a priori, tests en direct

Les développeurs assurent la liaison avec le code

Green pepper, fitnesse, concordion

vendredi 28 mai 2010

Intégration continue

Vérification du code en tâche de fond

phpUnderControl, Rephlux, Hudson, Maven, sonar,

Xinc, script maison

Présentation en graphique des résultats

Compilation, code sniffer, tests unitaires, couverture

de code

Journaux, inclusion, performances...

vendredi 28 mai 2010

vendredi 28 mai 2010

Méthodologies

Expliquer comment on produit le code

Justifier comment on assure la qualité

Impliquer les utilisateurs!

Cycles de développement courts

Production, correction, adaptation

Méthodologies agiles :

SCRUM, XP, Lean SD, Open Unified Process

vendredi 28 mai 2010

Pratiques agiles

Les pratiques agiles sont souvent suffisantes

Codage par paire

Tester avant de coder

Cycles courts de production

Scénarios utilisateurs

Poker collectif

Point journalier (Daily Scrum)

vendredi 28 mai 2010

vendredi 28 mai 2010

La documentation

A transférer des développeurs aux utilisateurs

Les développeurs font la première version

Ajouter un système de commentaires

Voir PHP.net : les commentaires sont plus

intéressants que la documentation!

Utiliser un Wiki

Les utilisateurs font la documentation

vendredi 28 mai 2010

vendredi 28 mai 2010

Encore plus loin?

Déploiement continu (a la flickr)

Audits croisés

Audits collaboratifs

Analyse statique

vendredi 28 mai 2010

Merci!

http://www.alterway.fr/

publications/

livre-blanc-industrialisation-php

Damien Seguy :

damien.seguy@alterway.fr

vendredi 28 mai 2010

damien.seguy@alterway.fr http://www.slideshare.net/dseguy/

vendredi 28 mai 2010

top related