Refactoring
Viele Java-Programme büßen mit der Zeit an Lesbarkeit und Übersichtlichkeit ein. Das Refactoring Seminar zeigt, wie Systemarchitekten Schwächen im Design entdecken und historisch gewachsene Programme verbessern sowie leichter erweitern können. Um das Auffinden von betroffenen Programmstellen zu üben, wird im Seminar ein Beispiel Schritt für Schritt optimiert und dabei die von Martin Fowler dokumentierten Refactoring-Möglichkeiten angewendet. Software-Entwickler lernen auf diese Weise, für wiederkehrende Probleme die passenden Refactoring-Schritte auszuwählen und in einer Entwicklungsumgebung anzuwenden. Bewusst nehmen die Teilnehmer wahr, warum die Pflege des Systems neben der Neuentwicklung ein fester Bestandteil des Entwickleralltags sein muss.
Inhalte des Seminars
Einführung
- Ursprung von Refactoring
- Übel riechender Code (code smell)
- Das Prinzip der kleinen Schritte
- Refactoring und Testing, JUnit
- Phasen in der agilen Software-Entwicklung
- Refactoring und Entwurfsmuster
- Wiederholung von wichtigen Entwurfsmustern
- Risiken und die Frage nach dem Ende
- Code-Metriken
- Refactoring-Tools
Methoden zusammenstellen
- Methode extrahieren, Methode inline setzen
- Temporäre Variable entfernen, temporäre Variable durch Anfragemethode ersetzen
- Beschreibende Variable einführen
- Trenne temporäre Variable
- Entferne Zuweisung an Parametervariable
- Ersetze eine Methode durch ein Methoden-Objekt, ersetze Algorithmus
Eigenschaften zwischen Objekten verschieben
- Verschiebe Methode und Attribut
- Extrahiere Klasse oder Klasse inline setzen
- Den Delegate verstecken
- Entferne Klasse in der Mitte
- Führe fremde Methode ein
- Führe lokale Erweiterung ein
Daten organisieren
- Kapsele Attributzugriffe, Attribut, Collection
- Ersetze eigenes Attribut durch Objektverweis
- Ersetze Wert durch Referenz und umgekehrt
- Ersetze Feld durch ein Objekt
- Beobachtete Daten verdoppeln
- Unidirektionale Beziehung und bidirektionale Beziehung
- Magische Zahlen und symbolische Konstanten
- Datensatz durch Datenklasse ersetzen
- Typenschlüssel durch Klasse ersetzen
- Typspezifischen Code durch Unterklassen bzw. Zustand-/Strategiemuster ersetzen
- Unterklassen durch Attribute ersetzen
Bedingte Ausdrücke vereinfachen
- Zerlege Bedingung
- Wiederholte Anweisungen oder Ausdrücke zusammenführen
- Kontroll-Flags entfernen
- Geschachtelte Bedingungen durch Wächter ersetzen
- Fallunterscheidungen durch Polymorphie ersetzen
- Null-Objekt einführen
- Assertions einführen
Methodenaufrufe vereinfachen
- Methode umbenennen und neu parametrisieren
- Parameter hinzufügen und entfernen
- Parameter durch Methoden ersetzen
- Vorhandenes Objekt übergeben
- Parameter-Objekt einführen
- Setter entfernen
- Methode verstecken
- Fabrik-Methode
- Explizite Typanpassung kapseln
- Fehlercodes durch Ausnahmen ersetzen und Ausnahmen durch Tests vermeiden
Umgang mit Generalisierung
- Attribut, Methode oder Konstruktor hochziehen
- Methode, Attribute nach unten verlagern
- Extrahiere Unterklasse, Oberklasse und Schnittstelle
- Hierarchien abbauen
- Schablonenmethode
- Ersetze Vererbung durch Delegation und umgekehrt
Weitere Refactorings
- Dynamische und statische Erzeugung
- Paket extrahieren
- Synchronizer-Token einführen
- Klasse verschieben
- Gültigkeit der Variable beschränken
- Doppelte Verneinung entfernen
- Definition und Initialisierung einer Variablen verbinden
- Fallunterscheidungen und Visitor
- Iteration und Rekursion
- Ersetze statische Variable durch Parameter
- Bedingung umdrehen und Schleifen trennen
Kleiner Ausblick auf Refactorings in Enterprise Java
- Schichtenarchitekturen
- Kommunikation zwischen EJBs
- Connection-Pool
Termine / Kontakt
Jedes Seminar führt tutego als kundenangepasstes Inhouse-Seminar durch.
Alle unsere Seminare können zudem als Live-Online-Seminar besucht werden.
Wir helfen Ihnen gerne bei der Anmeldung und einen passenden Termin zu finden. Kontaktieren Sie uns per E-Mail oder unter 0800/tutegos (kostenlos aus allen Netzen).
Die Fakten
- Empfohlene Schulungsdauer: 2 Tage, insgesamt 16 Unterrichtsstunden à 45 Minuten
- Zielgruppe: Systemarchitekten, Software-Entwickler, Projektleiter
- Vorkenntnisse: Gute Kenntnisse in Java. Wissen um Entwurfsmuster ist von Vorteil.
- Schulungsunterlagen: Deutschsprachige Unterlagen (Kopien der Folien mit Inhaltsverzeichnis und Index), Zertifikat
- Seminar-Software: Java 21 ist die Standardversion, die in Verbindung mit der IntelliJ IDEA (Community-Edition) verwendet wird. Auf Wunsch auch die Eclipse IDE (Paket ›Eclipse IDE for Enterprise Java Developers‹) oder andere Entwicklungsumgebungen (NetBeans, Oracle JDeveloper) und JDK 8.
Weiterführende Seminare
Design Pattern (Entwurfsmuster) in Java, Effektiv Java programmieren, Java Enterprise Architektur und Design Patterns