si ce que tu veux refactoriser ce sont des classes complètes, le problème c'est qu'une classe embarque un état + un comportement, c'est donc plus compliqué qu'une "simple fonction" qui n'embarque qu'un comportement (sous réserve que tu n'utilises pas des variables globales, statiques ou assimilés)
Donc ce que tu entends c'est que le code « r2r » est une fonction pure donc son comportement est simple (pas d'effet de bord) et facilement testable. C'est pratique quand c'est le cas, mais il arrive que ça ne soit pas possible à obtenir (dans un temps limité au moins).
donc tu n'implémentes pas cette complexité supplémentaire qui te retarderait en développement, mais également en tests et en gestion des effets de bords
Il y a aussi des techniques qui permettent de préparer les nouveautés avec un sur coût en terme de temps de dev négligeable. Je pense particulièrement aux cas où personnellement, je fais une sorte de data-driven programming : un cas trivial c'est pour implémenter différent cas au lieu d'avoir une structure de contrôle if/else if/else ou un switch, je place chaque partie du code dans un dictionnaire condition => fonction. Ajouter des cas consiste à ajouter le cas à l'initialisation de l'objet et le test qui va avec (c'est plus déclaratif et ça réduit la complexité cyclomatique).
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)
[^] # Re: chi va piano va sano
Posté par barmic . En réponse au journal Lutter contre l'overengineering. Évalué à 3.
Donc ce que tu entends c'est que le code « r2r » est une fonction pure donc son comportement est simple (pas d'effet de bord) et facilement testable. C'est pratique quand c'est le cas, mais il arrive que ça ne soit pas possible à obtenir (dans un temps limité au moins).
Il y a aussi des techniques qui permettent de préparer les nouveautés avec un sur coût en terme de temps de dev négligeable. Je pense particulièrement aux cas où personnellement, je fais une sorte de data-driven programming : un cas trivial c'est pour implémenter différent cas au lieu d'avoir une structure de contrôle
if/else if/elseou unswitch, je place chaque partie du code dans un dictionnaire condition => fonction. Ajouter des cas consiste à ajouter le cas à l'initialisation de l'objet et le test qui va avec (c'est plus déclaratif et ça réduit la complexité cyclomatique).Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)