Les cinq lois de la programmation évolutiveEcrire des programmes qui fonctionnent est à la portée de chacun. Surtout en Python ;). La difficulté principale est de réussir à écrire des programmes qui évoluent dans le bon sens, et éviter l'effet spaghetti*. Les cinq lois énoncées ci-dessous synthétisent les bonnes pratiques à adopter pour favoriser une croissance contrôlée des programmes.
Les bon noms font les bons amisChoisissez avec soin le nom de vos variables, modules, fonctions, classes et méthodes. Chacun d'entre eux doit être explicite et indiquer clairement son objectif. Quelques pistes:
Soigne ta signatureLes arguments de chaque méthode ou fonction doivent également être précis. Eviter les signatures magiques avec *args et autres **kw, qui rendent les interdépendances floues. Quelques cas particuliers:
Ecourter les conversationsLorsqu'un élément (classe, module, etc.) est utilisé dans du code, si plusieurs appels successifs sont effectués pour l'utiliser (sans ou avec peu d'interactions), ses APIs doivent être modifiées pour écourter les échanges au maximum. Le module __init__ d'un paquet est un bon outil pour synthétiser son utilisation. Exemple de conversation trop bavarde: from Paquet import misfit from Paquet import cat params = misfit.makeParams() truc = cat.generateTruc(params) bidule = cat.pondBiduleAvecTruc(truc) Les apis du Paquet et de ses modules peuvent être améliorés pour obtenir: from Paquet import pondBidule bidule = pondBidule() Le module __init__ joue alors le rôle d'intérmédiaire entre cat et misfit Ne jamais radoterL'ennemi du code est le doublon. Dès que deux blocs présentent des similitudes, il est nécessaire de les réunir. Diviser pour mieux régnerune fonction ne devrait jamais dépasser un écran. Il est nécessaire de la subdiviser le cas écheant. Il en va de même pour les classes, modules, et paquets: il ne faut pas avoir peur de diviser son paquet en une multitudes de petits paquets. *spaghetticus effectus: transformation d'un programme en un bloc monolithique ou chaque élément ne peut plus évoluer indépendamment des autres. Porte aussi le nom de pieuvre à 6 têtes dans la mythologie geek.
"demande d'explication" posté par matthieu le 28/03/2007 à 15:57
bonjour,
j'apprécie le billet sauf pour le point 3 que je ne comprends pas. Peux-tu l'expliquer plus en détail ? Merci
"more" posté par tarek le 29/03/2007 à 14:01
Hello,
je viens de completer le billet @+
|
A propos
|