Schulung Refactoring von Java-Programmcode

Beschreibung/Inhalt
Unverbindliches Angebot
anfordern

Was tun, wenn man feststellt, dass der Aufwand, neue Funktionalität in die Anwendung einzubauen immer höher wird? Was tun, wenn das Risiko durch Änderungen neue Fehler einzubauen immer größer wird? Was tun, wenn mit der bestehenden Code-Basis neue Technologie-Konzepte nicht verwendet werden können? Der Standardansatz lautet oft: alles neu machen, dann wird alles gut. In diesem Training erlernen Sie eine Alternative: Refactoring. Zunächst wird geschildert, warum Refactoring meist die bessere Lösung ist. Anschließend werden verschiedene Anti-Patterns in Legacy Code und die daraus resultierenden Probleme geschildert. Im nächsten Schritt wird dann aufgezeigt, wie moderne Architekturprinzipien klassische Probleme vermeiden helfen und es wird ein Gesamtkonzept für eine solche Architektur entwickelt. Anschließend wird aufgezeigt, wie durch entsprechende Refactoring-Techniken und -tools bestehender Code umgebaut wird und welche Vorgehensweisen sich beim Refactoring bewährt haben. Die Teilnehmer üben alle diese Schritte an einem eingängigen Übungsbeispiel und haben am dritten (optionalen) Tag die Möglichkeit die Vorgehensweisen am eigenen Code auszuprobieren.

Dieses Schulungsmodul kann mit allen aktuellen Java-Versionen (z.B. 23, 22, 21, 20) entsprechend Ihren Wünschen durchgeführt werden.
Dieses Schulungsmodul kann mit allen aktuellen Java Enterprise Edition-Versionen (z.B. 10, 9, 8, 7) entsprechend Ihren Wünschen durchgeführt werden.

1. Einleitung und Motivation

  • Was heißt Refaktorieren?
  • Woran erkennt man, dass Refaktorierung notwendig ist ("übel riechender Code", Code Smells)?
  • Warum sind automatisierte Tests erforderlich?


  • 2. Pattern für die Refaktorierungen
  • Auswahl von Patterns aus dem Pattern-Katalog von Martin Fowler


  • 3. Refactoring-Tools
  • Nutzung von Werkzeugen wie Eclipse


  • 4. Praktische Übungsbeispiele (am Beispiel einer schlecht programmierten Anwendung, schrittweises Refactoring unter Einsatz von Unit Tests, im Schwierigkeitsgrad zunehmend)
    Insbesondere werden hier folgende Themen angesprochen
  • Vermeidung von Codeduplikation
  • Verwendung "richtiger" Namen
  • Richtiger Umgang mit Variablen und Parametern (final...)
  • Vermeidung zu tiefer Schachtelungen
  • Vermeidung zu komplexer Bedingungsausdrücken
  • Verwendung von Zusicherungen (Preconditions, Invarianten, Postconditions)
  • Vermeidung von Vermischung unterschiedlicher Abstraktionsebenen
  • Vermeidung von "switches" (Alternative: Map oder dynamisches Binden)
  • Vermeidung von instanceof und Downcast
  • Ersetzen von Methoden durch Funktionsobjekte
  • konsistente Fehlerbehandlung
  • Richtiger Umgang mit Assoziationen
  • Interfaces vs. Klassen
  • Verwendung von Dependency-Injection
  • Delegation vs. Vererbung (Strategie...)
  • Richtiger Umgang mit Polymorphie und dynamischen Binden
  • Objektkomposition via Interfaces vs. "klassischer" Vererbung
  • Benutzung von inneren Klassen und Factories

  • Dauer
    Nach Ihren Wünschen. Gerne geben wir Ihnen eine Empfehlung zur notwendigen Schulungsdauer, wenn Sie uns in der Anfrage Ihre Vorkenntnisse und Ziele nennen.
    Termine
    Auf Anfrage. Wir richten diese Schulung für individuell Ihr Unternehmen aus. Dies ist keine Gruppenschulung, bei der Sie mit anderen Unternehmen zusammen lernen und sich nach einer vorgegebenen Agenda richten müssen.
    Ort
    Online (per TEAMS oder ZOOM oder anderer Videosoftware nach Ihrem Wunsch)
    oder
    an Ihrem Firmensitz in Deutschland, Österreich und der Schweiz (andere Länder auf Anfrage)
    Schulungsdidaktik
    Nach Ihrer Wahl:
    • Klassische Schulung mit PC-Übungen
    • Reine Präsentation ohne PC-Übungen
    • oder
    • Interaktiver Workshop mit Beratungsanteil
    Das ist im Preis enthalten
    Sie erhalten von uns einen Festpreis inklusive:
    • Einem bestimmten, im Angebot benannten und per Expertenprofil ausgewiesenen Top-Experten
    • Vorgespräch mit dem Experten zur Abstimmung der Inhalte und der Didaktik
    • Bis zu 10 Teilnehmer, bei reinen Präsentationen: beliebige Teilnehmeranzahl
    • Teilnahmezertifikat für alle Teilnehmer