Ok je vois. Je pense qu'on peut dire que c'est une démarche prudente. À mon avis elle l'est un peu trop, mais ça me semble n'être qu'une question de goûts finalement, cf. ci-dessous 3ème citation.
Je comprends tout à fait l'objectif. Mais il y a un aspect qu'il faut aussi garder à l'esprit : la motivation. Quand on apprend un langage (ou simplement la programmation dans son ensemble), il est facile de se démotiver, surtout quand on s'attaque à des langages pointus comme le C++. J'ai peur que, en essayant de respecter tous ces principes dès la première heure, et donc d'être amené à écrire du code étrange et lourd comme celui qui a déjà été présenté dans les posts précédents, on finisse par penser que "écrire du C++ c'est pénible, la syntaxe n'est pas naturelle, il y a plein de mots et de caractères inutiles" (inutiles = dans un monde parfait, je n'aurais pas à les écrire).
Alors qu'en codant différemment (i.e. en se permettant de violer explicitement des "règles" comme l'encapsulation, le principe de Demeter, ...), et, il faut l'avouer, surtout depuis l'arrivée du C++11 (en particulier avec
auto, les lambdas et les listes d'initialisations, et plus indirectement avec les autres features comme la sémantique de mouvement ou les templates variadiques), je trouve qu'on peut s'approcher très près du "monde parfait" où chaque atome du code a un sens d'abord pour le lecteur plutôt que pour la machine, tout en s'assurant les performances quasi-optimales d'un langage compilé. À mon humble avis, c'est ça qui rend le C++ différent de tous les autres langages, et c'est ce pourquoi je l'apprécie autant.
Maintenant, comme il a déjà été dit plusieurs fois sur ce forum (peut être pas encore sur cette discussion, pardon si c'est le cas), avant d'enfreindre les règles, il faut savoir qu'elles existent, quel est leur but et quand on peut s'en passer. Donc il est clair que plus tôt on se frotte à ces règles, mieux c'est.
Je pense que tout le monde est d'accord là dessus
J'ai l'impression que le débat tourne plus autour du seuil de tolérance de chacun quand à l'improbabilité d'un imprévu. Si j'ai bien compris, ton point de vue est que tout imprévu, aussi potentiel et improbable soit-il, est un imprévu, et donc tu fais donc en sorte que ton code soit affecté au minimum si jamais il venait à se produire. De mon point de vue, il y a des imprévus tolérables, et parmi eux, certains dont je juge qu'ils nécessiteraient trop d'effort pour s'en protéger, et je décide donc de privilégier la lisibilité et la simplicité du code.
Partager