Der übliche Instinkt besteht darin, alle Code-Duplikationen zu entfernen, die Sie im Code sehen. Ich befand mich jedoch in einer Situation, in der die Vervielfältigung illusorisch ist .
Um die Situation genauer zu beschreiben: Ich entwickle eine Webanwendung und die meisten Ansichten sind im Grunde genommen gleich - sie zeigen eine Liste von Elementen an, aus denen der Benutzer scrollen und auswählen kann, eine zweite Liste, die ausgewählte Elemente enthält, und ein "Speichern" ", um die neue Liste zu speichern.
Es schien mir, dass das Problem einfach ist. Allerdings hat jede Ansicht ihre eigenen Macken - manchmal müssen Sie etwas neu berechnen, manchmal müssen Sie einige zusätzliche Daten speichern usw. Diese habe ich durch Einfügen von Callback-Hooks in den Hauptlogikcode gelöst.
Es gibt so viele winzige Unterschiede zwischen den Ansichten, dass sie immer weniger gewartet werden können, da ich Rückrufe für praktisch alle Funktionen bereitstellen muss und die Hauptlogik wie eine riesige Folge von Rückrufaufrufen aussieht. Am Ende spare ich keine Zeit oder Code, weil jede Ansicht einen eigenen Code hat, der ausgeführt wird - alles in Rückrufen.
Die Probleme sind:
- Die Unterschiede sind so gering, dass der Code in allen Ansichten fast genau gleich aussieht.
- Es gibt so viele Unterschiede, dass der Code beim Betrachten der Details kein bisschen gleich ist
Wie soll ich mit dieser Situation umgehen?
Ist es eine gute Lösung, wenn die Kernlogik ausschließlich aus Rückrufaufrufen besteht?
Oder sollte ich lieber den Code duplizieren und die Komplexität von Callback-basiertem Code aufheben?