Bad Smell: Duplizierter Code

Wenn es nach Kent Beck und Martin Fowler geht, ist wohl ein duplizierter Code eines der „stinkensten“ Vorkommnisse die es bei der Softwareentwicklung gibt. Dies ist genau dann der Fall, wenn sich identische Codefragmente an unterschiedlichen Stellen unnötig wiederholen. Selbst wenn nur die Struktur identisch ist, kann muss der Code in eigene (Utility) Methoden ausgelagert werden. Hierdurch entfällt nicht nur die Pflege des doppelten Codes, sondern auch die Analyse möglicher Entwicklungsfehler beschränkt sich auf ein Minimum.

Ich musste die Erfahrung machen, das simple Helfermethoden wie zum Beispiel die Darstellung oder Berechnung eines Datums, die Verarbeitung von Strings, das Prüfen auf Nullpointer oder anderen kleine Helferzeilen oft in bereits eingesetzten Frameworks oder Utility Jars vorhanden sind, bloß das die Entwickler durch reine Unwissenheit der Existenz dieser Hilfsmethoden diese nochmals selbst in den eigenen Code eingebaut haben. Beispielsweise stellt Google in der bekannten Guava Bibliothek viele Methoden bereit, die die Entwicklung bei korrekter Verwendung vehement voran treiben kann. Wozu soll man auch das Rad (eckig) neu erfinden, wenn man doch auf bereits vorhandenen Code zurück greifen kann.