Als «refactoring» getaggte Fragen

Refactoring ist eine disziplinierte Technik zur Umstrukturierung eines vorhandenen Code-Körpers, bei der die interne Struktur geändert wird, ohne das externe Verhalten zu ändern.


21
Ein großer Teil meines Codes weist einen großen Konstruktionsfehler auf. Beenden Sie es oder reparieren Sie es jetzt? [geschlossen]
Ich bin ein Gymnasiast, der mit einem Freund von mir an einem C # -Projekt mit ungefähr dem gleichen Können wie ich arbeitet. Bisher haben wir ungefähr 3.000 Codezeilen und 250 Testcodezeilen in einem Bereich von 100 Commits geschrieben. Aufgrund der Schule habe ich das Projekt für ein paar Monate …

9
Warum sollte ich eine Factory-Klasse anstelle der direkten Objektkonstruktion verwenden?
Ich habe die Geschichte mehrerer C # - und Java-Klassenbibliotheksprojekte auf GitHub und CodePlex gesehen und sehe einen Trend zum Umstieg auf Factory-Klassen im Gegensatz zur direkten Objektinstanziierung. Warum sollte ich viele Factory-Klassen verwenden? Ich habe eine ziemlich gute Bibliothek, in der Objekte auf altmodische Weise erstellt werden - durch …



16
Sollte ich nicht referenzierten Code entfernen?
Ich arbeite an einer mittelgroßen Codebasis (100.000 Zeilen), die allesamt relativ neuen Code enthält (weniger als ein Jahr alt) und eine gute Abdeckung durch Komponententests aufweist. Ich stoße immer wieder auf Methoden, die entweder nirgendwo mehr verwendet werden oder auf die nur in Komponententests verwiesen wird, in denen nur diese …

12
Gründe, um lokale Variablen vor Instanzvariablen zu bevorzugen?
Die Codebasis, an der ich arbeite, verwendet häufig Instanzvariablen, um Daten zwischen verschiedenen einfachen Methoden auszutauschen. Der ursprüngliche Entwickler ist der festen Überzeugung, dass dies den Best Practices entspricht, die im Clean Code- Buch von Onkel Bob / Robert Martin aufgeführt sind: "Die erste Regel für Funktionen lautet, dass sie …
109 java  refactoring 



11
Ist es eine schlechte Praxis, Code ausschließlich zu Testzwecken zu ändern?
Ich habe eine Debatte mit einem Programmiererkollegen darüber, ob es eine gute oder eine schlechte Praxis ist, ein funktionierendes Codestück nur so zu ändern, dass es testbar ist (z. B. durch Unit-Tests). Meiner Meinung nach ist es in Ordnung, im Rahmen der Einhaltung guter objektorientierter und Software-Engineering-Praktiken (nicht "alles öffentlich …


6
Korrektur eines Rechtschreibfehlers in einem Methodennamen
Eine der Methoden, die ich üblicherweise in unserer Codebasis verwende, ist falsch geschrieben (und sie hat mich älter gemacht). Das irritiert mich wirklich, nicht nur, weil es falsch geschrieben ist, sondern, was noch wichtiger ist, dass ich beim ersten Tippen IMMER den Namen falsch schreibe (und dann muss ich mich …

10
Ist es sinnvoll, Tests für Legacy-Code zu schreiben, wenn keine Zeit für ein vollständiges Refactoring bleibt?
Normalerweise versuche ich, den Ratschlägen des Buches Working Effectively with Legacy Cod e zu folgen . Ich unterbreche Abhängigkeiten, verschiebe Teile des Codes in @VisibleForTesting public staticMethoden und in neue Klassen, um den Code (oder zumindest einen Teil davon) testbar zu machen. Und ich schreibe Tests, um sicherzustellen, dass ich …

7
Wie übernehme ich die Verantwortung für meinen Code, wenn ein Kollege ohne Vorankündigung unnötige Verbesserungen vornimmt?
Einer meiner Teamkollegen ist ein Alleskönner in unserem IT-Shop und ich respektiere seine Einsicht. Manchmal überprüft er jedoch meinen Code (er ist der zweithäufigste Befehlshaber unseres Teamleiters, das ist zu erwarten), ohne einen Hinweis zu haben. Manchmal überprüft er meine Änderungen, bevor sie das Endziel erreichen, und nimmt sofort Änderungen …

2
Schreiben von Tests für Code, dessen Zweck ich nicht verstehe
Ich habe kürzlich ein Black-Box-Refactoring abgeschlossen. Ich kann es nicht einchecken, da ich nicht weiß, wie ich es testen soll. Auf einer hohen Ebene habe ich eine Klasse, deren Initialisierung das Abrufen von Werten aus einer Klasse B umfasst. Wenn Klasse B "leer" ist, werden einige sinnvolle Standardwerte generiert. Ich …

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.