Moi je ne vois pas en quoi les deux sont incompatible.
Une solution générale est souvent plus simple in fine qu'une solution "simpliste" qui va t'emprisonner dans une cage de contraintes. Tant que tu restera dedans tout ira bien, mais si tu passes les doigts à travers les barreaux, ils vont rester coincés et ca te fera mal de les décoincer.
Et puis, encore une fois, la conception n'est pas l'implémentation. L'implémentation se doit de respecter le plus possible la conception, autant que les contraintes de la réalité le permettent. Je ne dis pas qu'il faut implémenter un truc capable de gérer effectivement une infinité de cases en implémentant tout un système pour contourner les limitations techniques. Je dis juste que conceptuellement, se limiter à la réalité connus n'est pas une solution à long terme.
Ce n'est pas parce que la conception autorise une infinité que l'implémentation ne va pas dire "ouais, mais en fait on va se limiter à 20, c'est mieux par rapport à mes contraintes".
Au final j'ai l'impression de dire sensiblement la même chose que pseudocode à ceci près que pour moi l'évocation de ces contraintes techniques n'a pas lieu d'être ici puisqu'on parle de conception. Tout ce que je dis c'est que donner des exemples d'implémentations techniques pour contredire une règle de conception n'a pas de sens. La conception n'est qu'une seule des phases du développement, elle n'a pas d'existence réelle et donc de contraintes réelles. Ces notions sont amenées par l'implémentation qui, elle, est réelle et pleine de contraintes.
D'ailleurs je n'ai même pas confirmé ou infirmé la règle (même si c'est plutôt évident que je suis assez d'accord avec). Tout ce que j'ai dit au final c'est que les exemples donnés pour dire "non je suis pas d'accord avec la règle" sont hors sujet puisqu'ils parlent d'implémentation.
Partager