Frage

Sie Refactoring Sie Ihre SQL zuerst? Ihre Architektur? oder Ihre Codebasis? Haben Sie Sprachen ändern? Werfen Sie alles weg und von vorne anfangen? [Nicht Refactoring]

War es hilfreich?

Lösung

Ich füge Unit-Tests zu einer großen, Legacy-Spaghetti-Codebasis.

Mein Ansatz ist, wenn Sie gefragt werden, ein Problem zu lösen, ich versuche, einen neuen Wrapper um den Teil der Codebasis zu schaffen, die auf meine aktuelle Aufgabe relevant ist. Diese neue Wrapper wird mit TTD entwickelt (den Test zuerst zu schreiben). Einige der Zeit Aufruf in dem nicht-Einheit getestet Legacy-Code. Zu anderen Zeiten mache ich eine neue Kopie eines bestehenden Modul und starte schwere Gewalt, um es zu tun. Manchmal umschreiben ich Funktionalität von Grund auf neu.

Aber wie ich es ziemlich gut getestet bin ich ziemlich halte das Gefühl in der Hand.

Was ich mit diesem Code-Basis zu finden, die sich mit viel zu viel Kopie und Einfügen entwickelt worden ist, ist, dass ich einmal ein Verständnis einen bestimmten Teil zu bekommen, und extrahieren daraus einige Funktionen (die Test-First getan werden). .. diese Funktionen schalten oft verwendbar in vielen anderen Orten zu sein und so die Rate der Legacy-Code mit meiner eigenen, Einheit getestet Bibliotheken erhöht ersetzen.

ich nicht (und haben keine Autorität) versuchen Tests Teile des Codes neu zu schreiben oder hinzufügen, die von meinem aktuellen Problem nicht berührt werden (in der Regel ein Fehler Ich versuche zu reparieren), aber ich habe eine ziemlich aggressive proaktive Haltung auf irgendetwas, das berührt und relevant sein könnte.

Update: Penguinix fragte: „? Welche Sprachen arbeiten Sie in Gibt es eine spezielle Prüfung Harness Sie empfehlen“

Im Moment arbeite ich in ... äh ... Mumps! Aber das gleiche Prinzip funktioniert überall.

Etwas, das mein Verständnis von UT verwandelt war MinUnit: http: //www.jera .com / techinfo / jtns / jtn002.html

Als ich MinUnit sah, war, dass eine Art „Zen“ Moment der Erleuchtung für mich. Es beraubt die Missverständnisse weg hatte ich über Unit-Tests etwas, anspruchsvollen OO Frameworks kompliziert erfordern usw. Ich verstand, dass UT war gerade dabei, eine Reihe von Tests zu schreiben. Das „Geschirr“ Sie können sie Sie in ca. 3 Minuten, in jeder Sprache schreiben. Nehmen Sie einfach auf und es tun.

Andere Tipps

Das hängt wirklich von dem Stand der Code-Basis ... geben es massive Klassen? eine Klasse mit Mega-Methoden? Sind die Klassen eng gekoppelt? ist Konfiguration eine Belastung?

Diese Erwägung, schlage ich vor, das Lesen Effektives Arbeiten mit Legacy Code , Kommissionierung Sie Ihre Probleme und die Anwendung der Empfehlungen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top