Book description
- Deutsche Übersetzung des Klassikers von Michael Feathers
- Holen Sie mehr aus Ihren Legacy-Systemen heraus: mehr Performance, Funktionalität, Zuverlässigkeit und Handhabbarkeit
- Mit einem Vorwort von Robert C. Martin
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.
Aus dem Inhalt:
- Die Mechanik von Software-Änderungen verstehen: Features hinzufügen, Fehler beheben, Design verbessern, Performance optimieren
- Legacy Code in einen Test-Harnisch bringen
- Tests schreiben, die Sie davor schützen, neue Probleme einzuführen
- Genau die Stellen identifizieren, an denen Änderungen vorgenommen werden müssen
- Mit Legacy-Systemen umgehen, die nicht objektorientiert sind
- Anwendungen handhaben, die keine Struktur zu haben scheinen
- Techniken zur Aufhebung von Dependencies
- Techniken, die mit jeder Sprache und auf jeder Plattform eingesetzt werden können - mit Beispielen in Java, C++, C und C#
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 integrierten Test-Framworks FIT. Er ist Mitglied der ACM und des IEEE und war Vorsitzender von CodeFest auf drei OOPSLA-Konferenzen.
Table of contents
- Umschlag
- Titel
- Impressum
- Widmung
- Inhaltsverzeichnis
- Vorwort
- Geleitwort
- Danksagungen
- Einführung – Wie man dieses Buch lesen sollte
- Teil I Wie Wandel funktioniert
-
Teil II Software ändern
- 6 Ich habe nicht viel Zeit und ich muss den Code ändern
- 7 Änderungen brauchen eine Ewigkeit
- 8 Wie füge ich eine Funktion hinzu?
- 9 Ich kann diese Klasse nicht in einen Test-Harnisch einfügen
- 10 Ich kann diese Methode nicht in einem Test-Harnisch ausführen
- 11 Ich muss eine Änderung vornehmen. Welche Methoden sollte ich testen?
- 12 Ich muss in einem Bereich vieles ändern. Muss ich die Dependencies für alle beteiligten Klassen aufheben?
- 13 Ich muss etwas ändern, weiß aber nicht, welche Tests ich schreiben soll
- 14 Dependencies von Bibliotheken bringen mich um
- 15 Meine Anwendung besteht nur aus API-Aufrufen
- 16 Ich verstehe den Code nicht gut genug, um ihn zu ändern
- 17 Meine Anwendung hat keine Struktur
- 18 Der Test-Code ist im Weg
- 19 Mein Projekt ist nicht objektorientiert. Wie kann ich es sicher ändern?
- 20 Diese Klasse ist zu groß und soll nicht noch größer werden
- 21 Ich ändere im ganzen System denselben Code
- 22 Ich muss eine Monster-Methode ändern und kann keine Tests dafür schreiben
- 23 Wie erkenne ich, dass ich nichts kaputtmache?
- 24 Wir fühlen uns überwältigt. Es wird nicht besser
-
Teil III Techniken zur Aufhebung von Dependencies
-
25 Techniken zur Aufhebung von Dependencies
- 25.1 Adapt Parameter
- 25.2 Break Out Method Object
- 25.3 Definition Completion
- 25.4 Encapsulate Global References
- 25.5 Expose Static Method
- 25.6 Extract and Override Call
- 25.7 Extract and Override Factory Method
- 25.8 Extract and Override Getter
- 25.9 Extract Implementer
- 25.10 Extract Interface
- 25.11 Introduce Instance Delegator
- 25.12 Introduce Static Setter
- 25.13 Link Substitution
- 25.14 Parameterize Constructor
- 25.15 Parameterize Method
- 25.16 Primitivize Parameter
- 25.17 Pull Up Feature
- 25.18 Push Down Dependency
- 25.19 Replace Function with Function Pointer
- 25.20 Replace Global Reference with Getter
- 25.21 Subclass and Override Method
- 25.22 Supersede Instance Variable
- 25.23 Template Redefinition
- 25.24 Text Redefinition
-
25 Techniken zur Aufhebung von Dependencies
- A Refactoring
- B Glossar
Product information
- Title: Effektives Arbeiten mit Legacy Code
- Author(s):
- Release date: July 2018
- Publisher(s): mitp Verlag
- ISBN: 9783958459038
You might also like
book
Softwaremigration in der Praxis
Erfahrung von Harry Sneed aus den letzten 20 Jahren Software Maintenance fließt ein- hoher Praxisbezug: Mitgrationsfallstudien …
book
Produktiv programmieren
Wer seine Brötchen mit Software-Entwicklung verdient, braucht Strategien, um besser, schneller und kostengünstiger zu programmieren. Dieses …
book
Basiswissen Testdatenmanagement
Ohne Daten ist Testen nicht möglich. Benötigt werden Ein- und Ausgabedaten, Zustandsdaten und ein Testorakel.Die Autoren …
book
Reviews in der System- und Softwareentwicklung
erstes deutsches Buch zum Thema- Autoren sind ausgewiesene Experten auf dem Gebiet- pragmatischer Ansatz- mit Checklisten, …