IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Livre blanc - Industrialisation de PHP


précédentsommairesuivant

V. Une nouvelle frontière

L'industrialisation est une nouvelle frontière pour PHP. C'est un domaine qui a rarement été abordé jusqu'à présent, sauf à mettre en place des outils spécifiques à une organisation particulière. Il s'agit désormais d'organiser les pratiques autour de méthodes et d'outils.

V-1. PHP n'a pas encore exprimé son identité

Plusieurs caractéristiques techniques de PHP sont rarement prises en compte :

  • PHP adopte la philosophie "Share Nothing" : il essaie au maximum de fonctionner sans avoir à coordonner ses processus : ils fonctionnent de manière autonome et indépendante.
  • PHP fonctionne au hit, avec une durée de vie très courte : les opérations de nettoyage de mémoire sont reportées à l'extinction.
  • L'importation de larges bibliothèques de composants est inutile en PHP, voire nocive. Cette importation doit être faite pour chaque sollicitation de script et, avec le trafic, crée des goulets d'étranglement. Les politiques d'importation de composants doivent donc être étudiées avec beaucoup de soin.
  • La nature modulaire de PHP permet de faire évoluer la plate-forme en intégrant des bibliothèques écrites en C ou C++, et d'ouvrir les API directement dans les scripts PHP.
  • PHP est indissociable du serveur Web qui l'héberge, et qui gère son existence et son environnement.

Toutes ces caractéristiques doivent être prises en compte pour bien comprendre le fonctionnement des scripts et les maîtriser.

V-2. PHP n'exploite pas encore ses capacités de collaboration

PHP est né sur le Web, pour le Web. Dès l'origine, c'est une plate-forme pour communiquer qui a été mise en place.

PHP sait réaliser l'interface entre des serveurs Subversion, HTTP, SSH, FTP, ou encore manipuler des documents XML, XMI ou PDF. Il sert souvent de plaque tournante entre des mondes très différents et cela s'applique complètement aux notions d'industrialisation.

Par ailleurs, écrire une application en PHP revient à la rendre accessible à quiconque dispose d'un navigateur Web. Dès que ces données sont accessibles, on peut faire collaborer les clients, les chefs de projets, les utilisateurs. Ce type d'approche, comparable aux projets SourceForge ou Gforce, donne immédiatement une dimension d'équipe aux solutions retenues.

Pour aller plus loin, on peut aussi imaginer que les collaborateurs ne soient plus regroupés uniquement par projet, mais bien par métier : les équipes de tests collaborent de manière transversale pour multiplier les tests d'encadrement, ou encore les utilisateurs pour améliorer leur pratique des documentations collaboratives.

V-3. Des idées à explorer

De nombreux outils restent à mettre en place pour assurer le bon développement des pratiques d'industrialisation :

  • Outil de déploiement : branché dans le dépôt de source, ces outils, adaptés aux technologies connexes de PHP, permettront de publier du code source de manière atomique, de gérer les configurations de production et préproduction.
  • Un outil d'audit collaboratif, avec une analyse statique du code, et des interfaces personnelles pour commenter le code, ou modifier le statut des points identifiés. Les motifs recherchés dans le code pourraient aussi être ouverts à tous, pour couvrir le maximum de pratiques. Cet outil pourrait aussi produire des rapports d'analyse au format PDF/ODT, pour diffusion auprès des clients.
  • Un outil d'intégration continue, écrit en PHP, tel que Xinc, mais avec plus d'expérience.
  • Une pile d'industrialisation, qui rassemblerait les outils allant de la conception à la mise en production, en passant par l'analyse statique et dynamique. Cette pile proposerait une interface commune pour les différents outils et méthodes d'industrialisation, accessible facilement via le Web ou l'intranet.
  • Une interface entre les tests fonctionnels et la documentation : produire et vérifier la documentation à partir des tests unitaires et fonctionnels.
  • Le lien entre les composants d'un projet Web et la planification des tâches, afin de fournir la date prévue de fin d'un projet.
  • Une bibliothèque de référence de Mantras PHP, avec des listes de mantras à choisir, et, le cas échéant, des outils pour identifier les violations.

Tout ces outils pourront être développés par des éditeurs indépendants ou des communautés Open Source.

V-4. La communauté est un atout majeur

La communauté PHP compte aujourd'hui plus de 5 millions de développeurs ; plus de 10 000 projets en cours ; une centaine de livres et plus de 2 conférences mensuelles dans le monde. La communauté est organisée en groupe d'utilisateurs autonomes, présents dans chaque pays, ou presque.

Cela est dû à une grande facilité d'accès à la technologie elle-même, et aussi à un vif esprit de solidarité et de collaboration. Les forums et les listes de diffusion assurent une circulation rapide des informations et un relais pour les projets et produits.

V-5. Les développeurs vont gagner en discipline

Les développeurs PHP sont souvent autodidactes et apprennent la technologie comme ses pratiques au fur et à mesure de leur expérience. Or, s'il est rapide d'apprendre à utiliser PHP par une méthode expérimentale et un peu de bon sens, il est plus long de découvrir les avantages de certaines techniques. La gestion de projets informatiques est longue à venir.

Les audits signalent souvent une dérive progressive dans l'application des bonnes pratiques. Ces dernières sont souvent connues des développeurs, mais aussi souvent mises à l'écart, par simple manque de visibilité sur les retours qu'elles engendrent. On voit souvent la documentation, les tests, la conception ne pas résister aux pressions des clients et progressivement céder la place au chaos. Ces outils sont justement là pour éviter ces situations.

A l'avenir, il faut que les développeurs apprennent à résister à ces pressions et sachent mettre en avant les avantages même des clients et utilisateurs : loin de les pénaliser, les bonnes pratiques sont capables de les faire gagner en crédibilité et en efficacité, pour peu qu'elles soient simplement appliquées.


précédentsommairesuivant

Publié sous licence OpenContent