Petit Déjeuner EUROSITES GEORGE V Industrialisation PHP Hervé Leclerc : CTO Alter Way Solutions
Agenda Point de situation Constat Objectifs de l'industrialisation Défis Solutions Axes IDE + SCM Frameworks Tests Intégration continue Audit Statique : Cornac Gestion des environnements Automatisation des déploiements Implémentation type d'une PIC Bénéfices
Constat L'utilisation de PHP en  entreprise  hors des directions métiers et gouvernée par la DSI est relativement  récente
Constat Les DSI se retrouvent désormais  confrontées  à différentes  problématiques
Applicatifs  hétérogènes Constat
Constat Bonnes pratiques  de développement  non définies  ou  dépendantes  des applicatifs
Constat Qualité de code  disparate
Constat Base de code  non testée  de manière  automatique
Constat Pas ou peu  d'indicateurs de  qualité , de  performance , de  maintenabilité  du code
Constat Pas de processus  unifié  sur  l'ensemble  des acteurs
Constat Pression  continue  de la production
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 .
Objectifs Gagner du temps en  automatisant  au maximum toutes les tâches  récurrentes
Objectifs Gagner en  qualité  (documentation, tests unitaires, normes, respect des licences, mutualisation…)
Objectifs Raccourcir  les cycles de mise en production
Objectifs Suivre  l’évolution  des projets par des  indicateurs clés
Défis Exemples de défis quotidiens 65 portails  à refaire en  6 mois
120 événements  par an, sur  150 serveurs
6 personnes  pour mettre à niveau  350 intranets
Une  application sur une ville :  12  villes pour Noël,  2 pays  l’an prochain
Un employé  à temps plein  pour le déploiement
Outillage Les outils sont  nombreux  et  dissociés
Il faut du temps  pour les  mettre en place  et les  entretenir
Pour de  nombreux  petits projets, il faut les  automatiser
Agenda Point de situation Constat Objectifs de l'industrialisation Défis Solutions Axes IDE + SCM Frameworks Tests Intégration continue Audit Statique : Cornac Gestion des environnements Automatisation des déploiements Implémentation type d'une PIC Bénéfices
Axes 3 axes majeurs Libération du code
Capitalisation
Implication des utilisateurs
Axes -> Relations ● IDE ● Framework ● Conception ● Déploiement ● SCM ● Tests ● IC ● Docs Techniques ● Méthodes ● Bug  Tracking ● Tests Fonctionnels ● Documentation Utilisateur ● Debugging
IDE IDE  :  I ntegrated  D evelopment  E nvironment
IDE Pourquoi utiliser un  IDE ? Un éditeur  simple  n'est souvent pas suffisant Donner aux développeurs un  environnement complet   qui accélère et simplifie son travail
IDE Comment un IDE augmente la productivité et la qualité du travail : En fournissant un outil d'édition  puissant ,  graphique
En utilisant des composants  réseaux ( SCM SSH/FTP/WEBDAV ...)
En gérant les différents  librairies  et  frameworks
En fournissant un environnement de  débogage  et  tests   intégrés
En facilitant la production de  documentation
Fonctions intégrées Colorisation  syntaxique
Auto-complétion
Intégration aux  dépôts de code
Intégration avec un ou plusieurs  frameworks
Débogueur
Profiler
Intégration d' outils externes (Tests unitaires, déploiement,..)
Refactoring et génération de code Quelques IDE open source Eclipse PDT, DLTK, Pulse, RT … NetBeans
Aptana IDE
SCM :  S ource  C ontrol  M anagement Gestion des  versions  et  révisions  de code
Outils très  puissants  permettant de gérer dans des dépôts centralisés ou non du code source
Facilite  le travail en équipe
Historisation  du code
Pérennité  du code
Quelques SCM open source :  Centralisés :  CVS ,  Subversion
Décentralisés :  Git ,  Bazaar ,  Mercurial SCM
Très souvent version  pro
Ensemble 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 Quelques Frameworks PHP Zend Framework
Symfony
Jelix
CakePHP
Yii
eZ Publish
Drupal
... Frameworks
Les Tests Ils sont de plusieurs types : Unitaires SimpleTest
PHPUnit Fonctionnels Selenium
SimpleTest
Cucumber Performance et montée en charge JMeter
OpenSTA
Twill Ils sont automatisés Ils fournissent des  résultats  structurés  utilisables  dans des portails de restitution Tests

Industrialisez vos projets Php