Effektives Arbeiten mit Legacy Code

Refactoring und Testen bestehender Software
Buch | Softcover
429 Seiten
2010
MITP (Verlag)
978-3-8266-9021-1 (ISBN)

Lese- und Medienproben

Effektives Arbeiten mit Legacy Code - Michael C. Feathers
39,95 inkl. MwSt
Michael C. Feathers arbeitet für Object Mentor, Inc., einem der weltweit führenden Unternehmen für Mentoring, Wissenstransfer und Leadership-Services bei der Software-Entwicklung. Gegenwärtig bietet er weltweit Trainings für Test-Driven Development (TDD), Refactoring, OO-Design, Java, C#, C++ und Extreme Programming (XP) an. Feathers ist der ursprüngliche Autor von CppUnit, einer C++-Portierung des JUnit-Test-Frameworks, und FitCpp, einer C++-Portierung des intergrierten Test-Framworks FIT. Er ist Mitglied der ACM und des IEEE und war Vorsitzender von CodeFest auf drei OOPSLA-Konferenzen.
Können Sie Ihren Code leicht ändern?
Können Sie fast unmittelbar Feedback bekommen, wenn Sie ihn ändern?
Verstehen Sie ihn?
Wenn Sie eine dieser Fragen mit nein beantworten, arbeiten Sie mit Legacy Code, der Geld und wertvolle Entwicklungszeit kostet.

Michael Feathers erläutert in diesem Buch Strategien für den gesamten Entwicklungsprozess, um effizient mit großen, ungetesteten Code-Basen zu arbeiten. Dabei greift er auf erprobtes Material zurück, das er für seine angesehenen Object-Mentor-Seminare entwickelt hat. Damit hat er bereits zahlreichen Entwicklern, technischen Managern und Testern geholfen, ihre Legacy-Systeme unter Kontrolle zu bringen.

Darüber hinaus finden Sie auch einen Katalog mit 24 Techniken zur Aufhebung von Dependencies, die Ihnen zeigen, wie Sie isoliert mit Programmelementen arbeiten und Code sicherer ändern können.

Michael C. Feathers arbeitet bei Object Mentor Inc. und gibt zahlreiche Schulungen für Refactoring, Objektorientiertes Design uvm.

Vorwort 13
Geleitwort 15
Danksagungen 21
Einführung – Wie man dieses Buch lesen sollte 23


Teil I: Wie Wandel funktioniert 25

1 Software ändern 27
2 Mit Feedback arbeiten 33
3 Überwachung und Trennung 45
4 Das Seam-Modell 53
5 Tools 69

Teil II Software ändern 79

6 Ich habe nicht viel Zeit und ich muss den Code ändern 81
7 Änderungen brauchen eine Ewigkeit 101
8 Wie füge ich eine Funktion hinzu? 109
9 Ich kann diese Klasse nicht in einen Test-Harnisch einfügen 127
10 Ich kann diese Methode nicht in einem Test-Harnisch ausführen 159
11 Ich muss eine Änderung vornehmen. Welche Methoden sollte ich testen? 173
12 Ich muss in einem Bereich vieles ändern. Muss ich die Dependencies für alle beteiligten Klassen aufheben? 193
13 Ich muss etwas ändern, weiß aber nicht, welche Tests ich schreiben soll 205
14 Dependencies von Bibliotheken bringen mich um 217
15 Meine Anwendung besteht nur aus API-Aufrufen 219
16 Ich verstehe den Code nicht gut genug, um ihn zu ändern 227
17 Meine Anwendung hat keine Struktur 233
18 Der Test-Code ist im Weg 243
19 Mein Projekt ist nicht objektorientiert. Wie kann ich es sicher ändern? 247
20 Diese Klasse ist zu groß und soll nicht noch größer werden 261
21 Ich ändere im ganzen System denselben Code 283
22 Ich muss eine Monster-Methode ändern und kann keine Tests dafür schreiben 301
23 Wie erkenne ich, dass ich nichts kaputtmache? 319
24 Wir fühlen uns überwältigt. Es wird nicht besser 329

Teil III Techniken zur Aufhebung von Dependencies 333

25 Techniken zur Aufhebung von Dependencies 335

A Refactoring 415
B Glossar 421

Stichwortverzeichnis 423

lt;p>»Feathers gelingt es immer wieder überzeugend aufzuzeigen, wie sich der Legacy Code durch das Anwenden der von ihm beschriebenen Schritte "zähmen" lässt und zeigt, weswegen es sinnvoll ist ihn zu "zähmen." Ein praxisnahes Buch, das dicht gepacktes, hilfreiches und verständlich vermitteltes Wissen enthält und das von einem sehr erfahrenen Entwickler geschrieben wurde. Mein Fazit: Empfehlenswerte Lektüre für jeden Entwickler.« (nososo.de, 07/2020)

Erscheint lt. Verlag 25.11.2010
Reihe/Serie mitp Professional
Verlagsort Heidelberg
Sprache deutsch
Original-Titel Working effectively with Legacy Code; Orig.-ISBN 0-13-117705-2
Maße 170 x 240 mm
Gewicht 722 g
Einbandart Paperback
Themenwelt Mathematik / Informatik Informatik Programmiersprachen / -werkzeuge
Informatik Software Entwicklung Agile Software Entwicklung
Informatik Software Entwicklung Qualität / Testen
Schlagworte Entwicklung • Entwurf • Java • Klassen • Legacy Software • Objektorientierung • Programmiersprache • Programmiersprache C++ • Programmierung • Refactoring • Software • Software Engineering / Softwareentwicklung • Softwareentwicklung • Software-Entwicklung • Softwaresysteme • Software-Wartung • Sprache
ISBN-10 3-8266-9021-4 / 3826690214
ISBN-13 978-3-8266-9021-1 / 9783826690211
Zustand Neuware
Haben Sie eine Frage zum Produkt?
Mehr entdecken
aus dem Bereich