Industrialisation PHP

31août/100

Se fixer un but pour garder le cap

Après quelques décennies passées à suivre des procédures formelles et lourdes, l'heure est aux méthodes agiles qui prônent la supériorité du pragmatisme sur le dogmatisme.

Je suis personnellement convaincu du bien-fondé des approches agiles. Plutôt que de viser un idéal impossible à atteindre, elles préconisent de constamment revoir sa copie et de s'adapter au mieux aux circonstances afin que le projet colle le plus possible au besoin réel et non au besoin exprimé ou pire encore : au besoin imaginé.

Il arrive que les nouveaux pratiquants pensent à tort que les méthodes agiles s'apparentent à la trop célèbre méthode La Rache. Même si elles sont moins contraignantes que les méthodes dites traditionnelles, les méthodes agiles proposent chacune un formalisme.

Au-delà de la méthode choisie, il me semble important de ne jamais perdre de vue le but du projet. Pour cela Tom Preston-Werner a imaginé une méthode originale et tout à fait intéressante : le Readme Driven Development. Il préconise de toujours commencer un projet par la rédaction de son fichier README. Ce fichier est traditionnellement inclus dans la distribution d'un programme afin d'en expliquer l'usage.

Rédiger ce document avant toute autre chose permet d'éviter de se jeter tête baissée dans le développement avec le risque que ce soit lui qui induise la direction que prendra le projet. Il faut au contraire que le code ne soit qu'un instrument destiné à atteindre un but. En se mettant à la place de l'utilisateur final dès le début, on privilégie l'usage et non le développement du produit.

Par ailleurs, si de nouveaux développeurs viennent étoffer l'équipe ou s'il faut expliquer le but de l'application à quelqu'un d'extérieur, ce document sera une bonne base de travail.

Parfois, le produit n'est pas vraiment une application destinée à un utilisateur final mais plutôt une librairie qu'utiliseront d'autres développeurs pour construire une application. Dans ce cas là, j'ai pris pour habitude de commencer par concevoir les exemples d'utilisation.

Ainsi, je peux voir si l'usage est simple et logique. Généralement, je fais plusieurs modifications radicales avant d'arriver à quelque chose qui me satisfasse pleinement. L'avantage de cette approche est que les classes n'étant pas encore implémentées, le coût de refactorisation du code à ce stade est quasiment nul.

Cette approche très simple à mettre en œuvre permet de concevoir une librairie idéale sans se laisser influencer par d'éventuels raccourcis que l'on utilise parfois pour se faciliter la programmation mais qui vont compliquer l'usage ultérieur de la librairie.

Cela se rapproche de la philosophie du Test Driven Development mais sans s'encombrer, pour le moment, du framework de tests unitaires. Le but est de prototyper l'usage de la future libraire de la manière la plus souple possible.

Et vous, utilisez-vous une méthode personnelle pour conserver le cap lors de vos développements ?

Readme Driven Development

6août/100

Revue de presse Industrialisation PHP des semaines 27 à 31 (2010)

Au milieu de l'été voici une revue de presse rédigée à 10 000 mètres d'altitude dans l'avion qui me ramène vers la France après deux semaines de vacances salutaires.

HipHop PHP -- some guidance for programmers

Il y a quelques mois, la publication par Facebook de Hip Hop for PHP a eu un retentissement énorme. Certains y ont vu le futur de PHP, d'autres un simple jouet destiné à une frange infime des utilisateurs de PHP. L'outil commence à être utilisé çà et là et OC Portal vient de publier le premier retour d'expérience d'une autre société autre que Facebook utilisant Hip Hop for PHP en production. On y retrouve des conseils pour effectuer sans douleur ses premiers pas ainsi qu'un panorama des solutions alternatives.

Velocity: Forcing Gzip Compression

Steve Souders est un spécialiste des performances des applications web. Auteur de YSlow, la célèbre extension pour Firefox, lorsqu'il était chez Yahoo!, Steve occupe maintenant un poste de responsable des performances web chez Google et continue ses recherches dans le domaines.

Il traite aujourd'hui du problème des clients web qui ne spécifient pas pouvoir recevoir un contenu compressé alors qu'ils en ont la capacité. Plusieurs raisons peuvent amener à ce problème mais celui-ci est désormais contournable grâce à l'astuce dévoilée dans cet article.

Storing Date/Times in Databases

La gestion des dates est un problème qui semble simple au premier abord mais qui ne cesse ensuite de dévoiler des cas particuliers et des subtilités inattendues. Derick Rethans, qui a écrit un livre sur ce sujet, aborde cette fois le stockage de dates dans une base de données et ce n'est pas aussi simple que ça en à l'air.

A Beginner’s Guide to Design Patterns

Les design patterns sont trop rarement utilisés. Parfois par ignorance de leur existence, mais également parfois par difficulté à les comprendre et à les implémenter. Nettuts+ propose un article didactique sur le sujet pour débuter du bon pied.

5août/100

Les utilisateurs ont-ils confiance en l’avenir de PHP

Le désormais incontournable Frédéric Hardy a eu une idée intéressante : demander à 5 utilisateurs français de PHP de répondre à un questionnaire sur la manière dont ils voient l'avenir de PHP.

Ces interviews, toutes basées sur le même modèle, ont réalisées avec le concours de gens connus ou moins connus, professionnels ou étudiants, consultants ou développeurs :

La confrontation de ces points de vue est très intéressante … et je ne dis pas cela uniquement parce que j'ai eu la chance que Frédéric me demande de m'exprimer sur le sujet. ;)

Remplis sous: PHP Aucun commentaire