Dur Comme Faire

Aller au contenu | Aller au menu | Aller à la recherche

Soyez fainéants !

Be Lazy! The greatest inefficiencies come from solving problems you will never have.

Cette phrase tirée des transparents d'une conférence donnée par Rasmus Lerdorf en janvier dernier, signifie à peu de choses près : Soyez fainéants ! Les plus grandes inefficacités viennent de la résolution de problèmes que vous n'aurez jamais.

Cette phrase à première vue provocatrice met, en fait, en lumière un problème très répandu chez les développeurs : la quête du code parfait qui va s'adapter à toutes les situations.

Entendons nous bien, je ne jette la pierre à personne; moi même, cela ne fait pas si longtemps que j'ai pris conscience du problème. Mon but est précisément de permettre à ceux qui y croient encore de comprendre plus tôt pourquoi cette quête est vaine et contre productive.

A première vue, écrire un code capable de gérer tous les cas est LA solution. Seulement en pratique, on s'apercoit très vite que cela n'est jamais possible car les besoins et les contextes changent et tous ces changements ne peuvent pas être prévus. De plus avec l'évolution de votre propre niveau de compétence, certains choix vous sembleront inappropriés et vous souhaiterez revenir dessus. Vous aurez ainsi passé un temps non négligeable sur du code qui n'aura finalement jamais servi.

La philosophie que prône ici Rasmus Lerdorf, et qui se rapproche fortement de celle de l'eXtreme Programming, est qu'il faut se limiter à coder le strict nécessaire. Ainsi, on diminue le volume du code, et donc le nombre de bugs potentiels, tout en évitant de perdre du temps à développer des parties qui ne serviront jamais.

jeudi 24 février 2005 à 13h25 - PHP 6   0

Exécution invisible de commande Shell

Lorsqu'on utilise PHP en ligne de commande, il est souvent nécessaire de lancer une commande Shell depuis PHP. Seulement, il est rarement souhaitable que celle-ci affiche directement des informations dans le terminal. Afin d'empêcher un quelconque affichage par la commande Shell tout en récupérant sa sortie, il suffit d'utiliser la commande suivante :

exec('LA_COMMANDE_SHELL', $sortie, $code);

Une fois cette ligne exécutée, la variable $sortie sera un tableau contenant les lignes de la sortie tandis que la variable $code contiendra le code de sortie de la commande Shell.

mercredi 23 février 2005 à 13h17 - PHP 0   0

Tests plus concis

Voici une astuce toute simple pour diminuer la taille de vos tests quand ceux-ci sont simples et répétitifs.

Admettons que vous souhaitiez vérifier que la valeur d'une variable vaux soit 2, soit 3, soit 7, soit 9. La méthode qui vient immédiatement à l'esprit est de multiplier les tests de cette manière :

if ($variable == 2 ||
    $variable == 3 ||
    $variable == 7 ||
    $variable == 9 ) {
  // ... code ...
}

Cela fait beaucoup de lignes pour un test assez simple finalement. En y regardant de plus près, on s'apercoit qu'on peut reformuler le problème ainsi : la valeur d'une variable est-elle dans l'ensemble 2, 3, 7, 9 ?. Ce qui s'écrit ainsi en PHP :

if (in_array($variable, array(2, 3, 7, 9))) {
  // ... code ...
}

Le code est maintenant beaucoup plus concis et tout aussi simple à comprendre.

Mise à jour :

Suite au commentaire de michel v, j'ai effectué un petit benchmark et il s'avère effectivement que la solution avec in_array est nettement plus lente que l'autre. De plus, la différence grandie lorsque la valeur à trouver est située au début de la liste des tests.

Néanmoins, il faut relativiser car si la différence de temps d'exécution entre les 2 solutions est importante, dans l'absolu, la durée en elle même est infime et donc négligeable dans 99,99% des cas.

mercredi 23 février 2005 à 08h22 - PHP 9   0

AFUP

Comme Perrick l'a annoncé, l'AFUP vient de changer de bureau et j'ai l'honneur d'être son nouveau trésorier. Pour ceux qui l'ignoreraient, l'AFUP a pour vocation de promouvoir le langage PHP auprès des professionnels et de participer à son développement.

Comme nous l'avons dit à l'assemblée générale de mardi soir, notre programme s'inscrit dans la continuité du travail réalisé par le bureau précédent plus quelques axes que nous souhaitons mettre en place dont notamment une décentralisation des soirées AFUP dans les régions sur le modèle des ApéroPHP.

Voilà une nouvelle aventure qui commence aux côtés de Perrick, François et Damien. L'année 2005 sera donc vraisemblablement très riche en rencontres et en nouvelles expériences.

vendredi 4 février 2005 à 08h34 - PHP 4   0

XHTML - CSS - DotClear - Technorati

Les billets de ce blog sont sous licence Creative Commons