Eh bien encore une fois :
- Primo le "cauchemar" l'est beaucoup moins pour gérer 400 fichiers que 4000 ou 12000.
- Secondo, la difficulté intellectuelle pour comprendre un fichier de 20 000 lignes bien construit est bien moindre que celle nécessitée par la compréhension de 6000 fichiers mal construits....
N'importe quelle personne ayant travaillé sur des gros softs te le dira...
Oui il y en a une : c'est même publié (
je crois que j'avais inclus le schéma dans un des débats sur ce forum), je crois dans Scientific American : la courbe est exponentielle en volume, en points de fonctions, en durée, et en budget (et en taux d'annulation).
Cependant,
tous les
très gros projets sont
très complexes .
Et les "normes" , comme par exemple à la NASA avec 50 lignes max par fonction, et une fonction par fichier, ne rendent pas la maintenance plus facile : 3000 ingénieurs à temps plein, un budget plus gros que celui de la France, environ 800 000 fichiers à gérer, c'est pas forcément mieux.... et à la portée de toutes les bourses...
Encore une fois le "critère" (
je me répète par raport à l'autre débat) est que cela soit
compréhensible.
Ces critères "absolus" sont une absurdité en soi.
D'autant plus si les fonctions sont dans des fichiers différents. Jongler entre des dizaines de fichiers pour établir l'organigramme d'une fonctionalité est bien plus casse-tête (
pour ne pas dire emm.rdant) que suivre un fil sur 300 lignes consécutives..
Je prend date, et vous donne rdv dans 20 ans, quand vous aurez eu (peut-être) à reprendre de vrais gros codes construits aujourdhui avec ces règles...
En conclusion : toute norme
absolue est
stupide dans notre domaine...
Comme pour tout,
le bon sens est la règle qui devrait prédominer...
- Sur un petit projet, pas de problèmes.
- Sur un gros, tout dépend de l'architecture fonctionnelle, des objets manipulés, de la durée de vie, du langage utilisé (une des raisons pour lesquelles j'ai une très mauvaise expérience du C++ en très gros projet industriel (celui des contrôles aériens cité ci-dessus) : les "factories" sont une étape de complexité supplémentaire, qui n'ont aucun lien avec la fonctionalité, et rendent la compréhension d'un code source encore plus difficile), du futur qu'on attend de cette application..