Neben unerfahren zu sein, ist es, warum duplizierten Code Ereignisse auftauchen könnte:
Keine Zeit richtig
Refactoring Die meisten von uns sind in einer realen Welt zu arbeiten, wo reale Zwänge uns zwingen, sich schnell zu bewegen zu echten Problemen, anstatt über die Nettigkeit des Codes nachzudenken. Also kopieren wir & einfügen und weitermachen. Wenn ich später sehe, dass der Code mehrere Male dupliziert wird, ist es das Zeichen, dass ich etwas mehr Zeit damit verbringen muss und alle Instanzen zu einem konvergieren muss.
Generalisierung des Codes nicht möglich/nicht ‚ziemlich‘ aufgrund von Sprach Zwänge
Lassen Sie uns sagen, dass tief im Inneren einer Funktion, die Sie mehrere Aussagen haben, die sich stark von Instanz zu Instanz gleichen duplizierten Code unterscheiden. Zum Beispiel: Ich habe eine Funktion, die 2d Miniaturbilder für das Video zeichnet, und es ist mit der Berechnung jeder Miniaturbildposition eingebettet. Um den Treffer-Test zu berechnen (Index-Index aus Klick-Position berechnen) benutze ich denselben Code, aber ohne zu malen.
Sie sind nicht sicher, dass es Generalisierung bei allen auf den ersten
doppelten Code sein, und später beobachten, wie es sich entwickeln wird. Da wir Software schreiben, können wir "so spät wie möglich" Änderungen an der Software vornehmen, da alles "weich" und veränderbar ist.
Ich füge mehr hinzu, wenn ich mich an etwas anderes erinnere.
Später hinzugefügt ...
Schleife
In der Zeit Abrollen vor Compiler intelligent waren wie Einstein und Hawking kombiniert, hatten Sie die Schlaufen oder Inline-Code entrollen, schneller zu sein. Schleifen-Abrollung wird dazu führen, dass Ihr Code dupliziert wird, und wahrscheinlich um ein paar Prozent schneller, hat der Compiler das sowieso nicht gemacht.
+1. Veränderte Anforderungen sind oft ein Mörder für DRY. –
Veränderte Anforderungen sind ein Mörder. DRY ist nicht besonders. –