Le 18/09/2011 19:24, Yves Martin a écrit :
> Salut,
>
> Il est désolant de constater que parce qu'un language est dit "de
> script" (je pense à Groovy, PHP, Perl, Ruby et bien d'autres) alors
> toutes les bonnes pratiques de développement autrement nommé "génie
> logiciel" semblent disparaître comme par (dés)enchantement:
>
> - gestion de configuration (Subversion, GIT... peu m'importe)
> - écriture et exécution tests unitaires avant livraison
> - profiling CPU et mémoire pour optimiser un minimum ou au moins
> détecter les erreurs grossières
> - debuggage en pas-à-pas pour diagnostiquer une erreur de comportement
> au lieu d'ajouter des "print" partout qui sont évidemment oubliés
> ensuite
>
> Tout cela existe pour PHP mais la référence me semble être Zend Studio
> (à base d'Eclipse) associé à Zend Server comme environnement d'exécution
> pour permettre le debuggage et le profiling. Pas libre et même payant:
> http://www.zend.com/fr/products/studio/
>
>
Désolé, je me suis fait violence mais je ne résiste pas à répondre à ce
troll.
Je ne vois pas en quoi coder en langage interprété ferait une différence
quant aux pratiques que tu cites. Pour développer en python et un peu en
ruby, voilà mon point de vue :
- Gestion de code source : je pense que c'est vital pour tout
développeur un peu expérimenté. Chez moi, c'est git init immédiat en
début de dev. Le SCM, c'est la base du dev en équipe, je pense qu'il y a
peu de jour où on ne se dit pas "cet outil m'a sauvé la vie" ;).
- Tests unitaires : c'est primordial. A développer avant le code de prod
(TDD). L'utilité est moindre s'ils sont écrits une fois le code terminé.
Je pense que l'utilisation d'un framework de test et du développement
dirigé par les tests rend caduque l'utilisation d'un debugger. Python et
Ruby sont bien équipés en framework de tests.
- Profiling : certes c'est important et je pense souvent négligé (je ne
fais pas le fier sur ce point !).
- Ces dernières années, j'ai un peu utilisé le debugger d'Eclipse pour
Java. Ca a quand même tendance à être lourd d'utiliser ce genre d'outil.
Se baser sur bonne couverture de tests est plus efficace.
Les langages interprétés modernes émergent de ces bonnes pratiques tout
en permettant de produire du code fonctionnel multiplateforme beaucoup
plus rapidement tout en étant plus facilement maintenable (euh,
peut-être pas avec perl, c'est vrai /o\).
Je n'ai pas fait de PHP depuis php3 mais :
Apparemment, il y a un truc qui s'appelle PHPunit pour PHP, ça vaut
peut-être le coups d'essayer :).
Sinon pour le debug, avez vous essayé l'extension firebug ?
Zend Studio semble être la référence pour le dev php. Pour du
développement commercial, on peut accepter avoir un produit payant de
bonne qualité s'il permet d'être plus efficace qu'avec un produit
concurrent, non ?
--
Romain TOUZÉ
Twitter: @romaintouze