Refactoring -- Wie Sie das Design bestehender Software verbessern

Umfassend überarbeitete und aktualisierte Neuauflage des Standardwerks in vollständig neuer Übersetzung Verbesserungsmöglichkeiten von bestehender Software anhand von Code-Smells erkennen und Code effizient überarbeiten Umfassender Katalog von Refactoring-Methoden mit Code-Beispielen in JavaScript S...

Full description

Bibliographic Details
Main Author: Fowler, Martin
Format: eBook
Language:German
Published: [Place of publication not identified] Mitp Verlag 2020
Subjects:
Online Access:
Collection: O'Reilly - Collection details see MPG.ReNa
Table of Contents:
  • Cover
  • Titel
  • Impressum
  • Inhaltsverzeichnis
  • Vorwort zur ersten Auflage
  • Über den Fachkorrektor der deutschen Ausgabe
  • Einleitung
  • Was ist Refactoring?
  • Worum geht es in diesem Buch?
  • Wer sollte dieses Buch lesen?
  • Von anderen geschaffene Grundlagen
  • Danksagungen
  • Kapitel 1: Refactoring: Ein erstes Beispiel
  • 1.1 Der Ausgangspunkt
  • 1.2 Anmerkungen zum ersten Programm
  • 1.3 Der erste Schritt des Refactorings
  • 1.4 Aufteilung der statement-Funktion
  • 1.4.1 Entfernen der Variable play
  • 1.4.2 Extrahieren der Berechnung von Treuepunkten
  • Includes bibliographical references
  • Kapitel 2: Prinzipien des Refactorings
  • 2.1 Refactoring: Definition
  • 2.2 Die beiden Hüte
  • 2.3 Gründe für ein Refactoring
  • 2.3.1 Refactoring verbessert das Design der Software
  • 2.3.2 Refactoring macht Software besser verständlich
  • 2.3.3 Refactoring hilft mir, Bugs aufzuspüren
  • 2.3.4 Refactoring hilft mir, schneller zu programmieren
  • 2.4 Der richtige Zeitpunkt für ein Refactoring
  • 2.4.1 Vorbereitendes Refactoring: Hinzufügen eines Features vereinfachen
  • 2.4.2 Refactoring zwecks Verbesserung der Verständlichkeit des Codes
  • 2.4.3 Refactoring als Abfallentsorgung
  • 1.4.3 Entfernen der Variable format
  • 1.4.4 Entfernen der Gesamtzahl der Treuepunkte
  • 1.5 Status: Eine Menge verschachtelter Funktionen
  • 1.6 Die Phasen Berechnung und Formatierung voneinander trennen
  • 1.7 Status: Aufgeteilt in zwei Dateien (und Phasen)
  • 1.8 Neuorganisation der Berechnungen nach Art
  • 1.8.1 Berechnen der Kosten einer Vorstellung
  • 1.8.2 Funktionen in die Klasse verschieben
  • 1.8.3 Polymorphes Verhalten der Klasse PerformanceCalculator
  • 1.9 Status: Erzeugen der Daten mit der polymorphen Klasse PerformanceCalculator
  • 1.10 Abschließende Überlegungen
  • 2.10 Automatisiertes Refactoring
  • 2.11 Weiterführende Literatur
  • Kapitel 3: Code-Smells: Schlechte Gerüche im Code
  • 3.1 Rätselhafte Bezeichnung
  • 3.2 Redundanter Code
  • 3.3 Lange Funktion
  • 3.4 Lange Parameterliste
  • 3.5 Globale Daten
  • 3.6 Veränderliche Daten
  • 3.7 Divergierende Änderungen
  • 3.8 Chirurgie mit der Schrotflinte
  • 3.9 Feature-Neid
  • 3.10 Datenklumpen
  • 3.11 Obsession für elementare Datentypen
  • 3.12 Wiederholte switch-Anweisungen
  • 3.13 Schleifen
  • 3.14 Träges Element
  • 3.15 Spekulative Generalisierung
  • 3.16 Temporäres Feld
  • 3.17 Mitteilungsketten
  • 2.4.4 Geplantes Refactoring und spontanes Refactoring
  • 2.4.5 Langfristiges Refactoring
  • 2.4.6 Refactoring beim Code-Review
  • 2.4.7 Wie sag ich's meinem Chef?
  • 2.4.8 Wann sollte man kein Refactoring durchführen?
  • 2.5 Probleme beim Refactoring
  • 2.5.1 Verlangsamung der Entwicklung neuer Features
  • 2.5.2 Code-Eigentümerschaft
  • 2.5.3 Entwicklungszweige
  • 2.5.4 Testen
  • 2.5.5 Legacy Code
  • 2.5.6 Datenbanken
  • 2.6 Refactoring, Architektur und Yagni
  • 2.7 Refactoring und der Softwareentwicklungsprozess
  • 2.8 Refactoring und Performance
  • 2.9 Ursprünge des Refactorings