Ein Teil der Antwort lautet Refactoring .
Beginnen Sie zunächst mit dem Schreiben von Komponententests, um sicherzustellen, dass Sie Ihre Änderungen nicht versehentlich ändern. Beginnen Sie dann mit der Verbesserung des Designs, dem Entfernen von Duplikaten usw. in kleinen Schritten, führen Sie Ihre Komponententests nach jedem Schritt durch, beheben Sie Probleme, wenn einer der Tests fehlschlägt, oder kehren Sie sofort zurück, wenn Sie auf ein größeres Problem stoßen, das Sie nicht leicht lösen können.
Der andere Teil ist Bildung .
Den Menschen muss beigebracht werden, keinen schlechten Code zurückzulassen. Dies ist sicherlich ein langfristiger Kampf, da Gewohnheiten und Denkprozesse nur schwer (manchmal sogar unmöglich) zu ändern sind . Ohne sie erhalten Sie jedoch weiterhin einen endlosen Vorrat an schlechtem Code, der schreit, um überarbeitet zu werden.
Sie können Gruppencodeüberprüfungen durchführen, um eine Diskussion über gute und schlechte Codierungsgewohnheiten zu eröffnen und deren Vorteile zu verbreiten. Es reicht nicht aus zu sagen "Sie müssen (nicht) Code wie diesen schreiben", Sie müssen die Leute mit Logik und harten Fakten überzeugen. Beispiel: "Wenn Sie diese Methode n- mal über die Codebasis dupliziert haben, wie stehen die Chancen, dass ein in dieser Methode gefundener Fehler in jeder Kopie des Methodencodes behoben wird?"
Möglicherweise muss Ihr Unternehmen auch die Anreize und Akzeptanzkriterien für die Berater überarbeiten. Wenn sie mit dem Schreiben von Sloppy-Code davonkommen, werden sie mit Sicherheit weiterhin den einfacheren Weg wählen. Wenn das Unternehmen weiterhin Wert auf eine "schnelle Lieferung" über eine langfristige Wartbarkeit legt, ändert sich nichts :-( Sie müssen dies möglicherweise auch mit dem Management besprechen. Ein Weg, dies zu verstehen, ist: Umgestalten bedeutet, den Code sauber und einfach zu halten Verstehen und pflegen Das Weglassen von Refactoring ist wie das Anhäufen von Schulden auf Ihrer Kreditkarte. Sie können eine Weile damit durchkommen, aber wenn Sie Ihre Kaufgewohnheiten und Schulden nicht aktiv verwalten, wird es eines Tages unweigerlich auf Ihren Schultern zerfallen. Während der Laufzeit eines Softwareprojekts kommt es zu einem Konkurs, wenn das Projekt nicht mehr verwaltet werden kann: Es ist einfacher, es von Grund auf neu zu schreiben, als der vorhandenen Codebasis eine neue Funktion hinzuzufügen. Oder Benutzer haben es so satt, dass sie einfach auf die Konkurrenz umsteigen.