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.
La réalité
65 portails à migrer en 6 mois
6 collaborateurs pour MAJ 350 intranets
120 sites d’émission par an, sur 150 serveurs
Application ouverte pour une ville : doit couvrir 12 villes
pour Pâques, et ouvrir 2 pays l’an prochain
1 employé à temps plein pour les déploiements
Libérez vous du code
Elevez votre facteur bus
Ne soyez plus le seul
Facteur WTF trop élevé?
Programmez comme les autres
Limitez le temps en production
Arrangez vous pour que la production ne vous trouve
pas
Libérez vous du code
Le code fonctionne sans vous
Ne vous investissez pas émotionnellement
Rendez le code accessible aux autres
Conventions de code
PEAR, Zend
Frameworks,
Symfony...
Choisissez en un
Utilisez en un
Unifiez
Code_sniffer
IDE
Choisissez celui qui vous plait
Netbean / Symfony, Zend tools, Komodo / cakePHP
Navigateur de code, éditeur, débogueur, intégration
des tests unitaires, intégration du framework,
déploiement
Frameworks
Choisissez en un, pour la vitesse de développement
Composants, conventions, mise en place, tests
Communauté, expertise, formations
Bâtissez une couche métier
Contrôle de version
Résout les conflits
Permet les versions, le développement paralèlle,
le retour en arrière
Stocke et distribue le code
«Le code qui n’est pas dans SVN n’existe pas»
Développement
Tests
Production
unitaires
Source
Suivi des Intégration
bugs continue
Capitalisation
Accumulation des connaissances au long du projet
Capture de l’expérience au fil de l’eau
Eviter les culs de sac
Pensez à celui qui va le réutiliser
Les tests aident
Évitent les régressions Production
Code
Évitent de vous appeler
Montre les progrès
Servent de manuel
Aident la communication
Client
Conception
Diagrammes de classe, schéma de base, navigation
Décrit l’organisation générale
Liste tout ce qui doit être nommé
Classe, méthodes, constantes, SESSION, inclusion...
Vérifiez le résultat dans le code
ArgoUML, StarUML, PowerArchitect, Visual Studio,
Microsoft Visio
Impliquer les utilisateurs
Évitez l’effet tunnel
Affronter le tsunami des questions, demandes
bugs, changements, ajouts, adaptation, accelération
Transmettez une partie du travail aux clients finaux
Suivi de bug
Connexion au déploiement, au VCS
Évite le contact direct des utilisateurs avec les
développeurs
Crée le changelog au fur et à mesure
Suivi de bug
Connexion au déploiement, au VCS
Évite le contact direct des utilisateurs avec les
développeurs
Crée le changelog au fur et à mesure
Tests fonctionnels
Base de wiki : accessibles aux non techniques
Capte des cas et des données métiers
Tests a priori, tests directs
Les développeurs font le lien entre les tableaux et le
code
Intégration continue
Vérification continue du code
Historise les résultats
Compilation, code sniffer, tests unitaires
Log, inclusion, performances, métriques
À partager avec clients, équipiers,...
Méthodologies
Explique comment on produit du code
Implique les utilisateurs dans le cycle
Cycles de développement court : on fait, on peaufine
Méthodes agiles :
SCRUM, XP, Lean SD, Open Unified Process
Les pratiques agiles au menu
Documentation
PHPDoc, TFS, Commentaires taggés
Des développeurs aux utilisateurs
La première version aux développeurs
Ajoutez des commentaires
Faites en un wiki