L'instinct habituel est de supprimer toute duplication de code que vous voyez dans le code. Cependant, je me suis retrouvé dans une situation où la duplication est illusoire .
Pour décrire la situation plus en détail: Je développe une application Web et la plupart des vues sont fondamentalement les mêmes. Elles affichent une liste d’éléments dans lesquels l’utilisateur peut faire défiler et choisir, une seconde liste contenant les éléments "bouton pour enregistrer la nouvelle liste.
Il m'a semblé que le problème est facile. Cependant, chaque vue a ses propres particularités - parfois, vous devez recalculer quelque chose, parfois vous devez stocker des données supplémentaires, etc. Cela a été résolu en insérant des points d'ancrage dans le code logique principal.
Les différences entre les vues sont si nombreuses qu'il devient de moins en moins facile à gérer, car je dois fournir des rappels pour pratiquement toutes les fonctionnalités, et la logique principale commence à ressembler à une énorme séquence d'appels de rappel. En fin de compte, je ne gagne pas de temps ni de code, car chaque vue a son propre code exécuté - le tout en rappel.
Les problèmes sont:
- les différences sont si minimes que le code est presque identique à tous les points de vue,
- il y a tellement de différences que lorsque vous regardez les détails, coder n'est pas un peu pareil
Comment dois-je gérer cette situation?
Avoir une logique de base entièrement composée d'appels de rappel est-il une bonne solution?
Ou devrais-je plutôt dupliquer le code et abandonner la complexité du code basé sur le rappel?