Clean Code 07: Legacy Code Java
Techniken und Best Practices zum Arbeiten mit Java Legacy Code

Du musst eine komplexe Java Code Basis ohne Test Suite verstehen und darauf aufbauend weitere Anforderungen realisieren? Du traust Dich nicht den existierenden Code zu ändern, weil dabei Side-Effekte auftreten können, durch die Änderungen möglicherweise andere Module betroffen sind und dadurch an anderen Stellen Fehler entstehen? Mit anderen Worten, Du musst mit Java Legacy Code arbeiten und willst gerne die besten Strategien und Techniken kennen lernen, wie Du erst einmal ein Sicherheitsnetz aufbauen kannst, so dass Du den existierenden Code schrittweise verstehen und in einen Clean Code refactoren kannst? Dann ist dieser Kurs genau der richtige für Dich! Eine alte komplexe Code Basis ohne Test Suite verstehen zu müssen und damit weiterzuarbeiten, ist mit Abstand das Unangenehmste mit dem Softwareentwickler tagtäglich zu kämpfen haben. Nicht aber, wenn Du die Techniken zum Arbeiten mit Legacy Code beherrschst. Mit dem entsprechenden Know-how und praxisnahen Best Practices wird diese anspruchsvolle Aufgabe zu einer der interessantesten Aufgaben. Erfahre mehr über diese spannende Schulung zum Arbeiten mit Java Legacy Code...

Nutzen

  • Best Practices zum Arbeiten mit Java Legacy Code kennen lernen
  • Bestehende komplexe Java Code Basis effektiv verstehen
  • Erstellen von Sicherheitsnetzen für Legacy Code in Form von Test Suites
  • Schrittweises Umwandeln von Legacy Code zu Clean Code mit höher Qualität
  • Sichere Weiterentwicklung und Anpassung von bestehenden alten Projekten
  • Test Suites anlegen anstelle einer komplett neuen Entwicklung oder einem Big Redesign
  • Einarbeitungs- und Entwicklungszeit deutlich verkürzen, wenn Legacy Code zu Clean Code wird 

Dieser Working with Java Legacy Code Kurs ist einer der beliebtesten an der Münchner Coding Akademie. Denn fast jede Firma hat mit Legacy Code zu kämpfen. Der Nutzen dieses Kurses ist sehr hoch, denn die erlernte Techniken lassen sich sofort in die alltägliche Arbeit integrieren und direkt anwenden, so dass die Softwareentwickler schneller und sicherer werden, wenn sie mit Legacy Code arbeiten müssen.

Kursformate

1-Tages-Crash-Kurs

Live-Training

Live oder online large

Lehrmaterial

Lehrmaterial

Video-Clips

Video clips
3-Tages-Kurs

Live-Training

Live oder online large

Lehrmaterial

Lehrmaterial

Verpflegung

Snacks large
4-Wochen Trainingsprogramm

Live-Training

Online large

Lehrmaterial

Lehrmaterial

Video-Clips

Video clips

Alle Kurse beinhalten zusätzlich den zeitlich unbegrenzten Zugang zu unserem Member-Bereich mit vielen weiteren Videos, Tutorials und Infos rund ums Coden.

Inhalte

Der Kurs behandelt eine Auswahl folgender Themen:

  • Introduction to Java Unit Testing 
  • Introduction to Clean Code
  • Introduction to Refactoring Patterns
  • Golden Master
  • Seams
  • Test Coverage
  • Mutation Testing
  • Adding a Feature
  • Get a Class into a Test Harness
  • Run a Method in a Test Harness
  • Breaking Monster Class
  • Changing Monster Method
  • Dependency Breaking Techniques

Für weitere Details bitte die untenstehende Agenda ansehen.

Vorkenntnisse

Dieser Working with Java Legacy Code Kurs wurde konzipiert für Softwareentwickler und Programmierer mit soliden und guten Java Kenntnissen, vergleichbar mit unserem Java-Kurs für Einsteiger.

Vorteilhaft wäre, wenn Du Dich bereits in Unit Test und Clean Code im Umfang unserer Unit Testing und Clean Code Kurse auskennst. Dies ist jedoch keine Voraussetzung, da wir am Anfang des Kurses auch eine kleine Einführung in diese Themengebiete geben werden.

  • Individuell: wir gehen gezielt auf Dich ein und berücksichtigen Deine Vorkenntnisse, Wunschthemen und Schwerpunkte

  • Strukturiert und leicht verständlich

  • Bringe deine Karriere, Studium oder Ausbildung auf die nächste Stufe: mit Zertifikat

  • Sicher und eigenständig Programme entwickeln (ob privat, beruflich oder für dein Startup)

  • Viel, viel, viel Praxis: sofort anwendbare Ergebnisse

  • kleine Gruppen: max. 8 Teilnehmer im 3-Tages-Kurs max. 15 Teilnehmer im Online-Coaching

  • Von Experten nach der Raed- Methode® entwickelt & auf die Anforderungen von Tech-Unternehmen im Jahr 2020 ausgerichtet

  • E-Mail-Support auch nach Ende des Kurses

Kursbeschreibung

Das Working with Legacy Code Seminar der Coding Akademie München ist ideal für Entwickler mit grundlegenden Java Kenntnissen, die in einem laufenden Projekt mit Legacy Code arbeiten. Oder für alle, die ein bestehendes Projekt ohne Test-Suite oder Unit Test betreuen. Im Rahmen des dreitägigen Seminars beleuchten wir den generell schwerer zu testenden Legacy Code. Schließlich liegen die Gründe dafür meist im Verborgenen. Entweder ist kein Unit Test für diesen Code vorhanden. Oder der vorhandene Unit Test reicht nicht aus. Beziehungsweise deckt er nicht alle relevanten Fälle ab. Da kommt dem ein oder anderen Programmierer der Gedanke, das ganze Projekt neu zu programmieren. Was aber nur in den allerwenigsten Fällen notwendig ist. Denn oft sind die Projekte sehr groß, komplex und die daraus entstehende Software wird bereits vermarktet. Das macht es unmöglich, den Code komplett neu und sauber aufzusetzen.

Genau hier setzen wir mit unserem Legacy Code Seminar an. Während den drei Tagen schreibst Du Schritt für Schritt bestimmte Tests für die entsprechenden Module. Das sichert Dich und Dein Projekt ab und lässt Dich in Ruhe den Code verändern, anpassen und mit Clean Code Regeln in einen deutlich besseren Zustand bringen. Deine Software wird dadurch von Tag zu Tag besser. Deine Code Qualität steigt. Änderungen und Anpassungen werden einfacher. Und Du behaltest den ursprünglichen Code bei, was eine reibungslose und sichere Funktion der Anwendung garantiert.

Selbstverständlich schreibst Du den Java Test und die Codes unter Anleitung ausgewiesener Fachexperten und renommierten Java Trainern, die an den besten Hochschulen des Landes referieren. Das sichert Dich ab und lässt Dich spielerisch die Kniffe des Legacy Codes verstehen. Mitverantwortlich für dieses gute Gefühl ist auch das angenehme Umfeld in unserem modernen Schulungszentrum. Ob Online oder Offline. Es liegt im Zentrum Münchens und ist bequem mit dem Auto oder den öffentlichen Verkehrsmitteln erreichbar. Bist Du einmal da, darfst Du Dich auf State-of-the-art Rechner freuen – genauso wie auf leckere Snacks und Getränke, die während Deines Legacy Code Seminars auf Dich warten.

Was lernst Du am ersten Tag?

Am ersten Tag müssen wir feststellen, dass Du die nötige Grundlage für diesen Kurs hast. Daher machen wir eine schnelle Einführung in Unit Test sowie in den allerwichtigsten Clean Code Regeln. Natürlich wäre super, wenn Du über gute Kenntnisse in diesem Gebiet verfügst wie in unseren Unit Testing und Clean Code Kurse. Dies ist aber kein Muss. Daher ja die Einführungen in diese Themen. Dann beginnen wir mit den Techniken an, mit denen Du ein Sicherheitsnetz aufbauen kann. Mit Golden Master. 

Was lernst Du am zweiten Tag?

Hier lernst Du weitere Techniken wie z.B. Seams und wie Du mit Test Coverage auch feststellen kannst, für was Du noch überhaupt Test schreiben solltest und warum! Danach schauen wir uns gemeinsam die wichtigsten Refactoring Patterns an, die Du brauchst, um mit Legacy Code effizient arbeiten zu können. Denn nachdem Du Dein erstes Sicherheitsnetz in Form von Unit Test Suite erstellt hast, kannst Du beruhigt und entspannt den existierenden komplexen Code ändern und nach jeder Änderung alle Tests starten, um sicher zu sein, dass Du nichts kaputt gemacht hast. Nun stellt sich die Frage, wie ändere ich jetzt den Code sehr effizient und geschickt? Hier spielen Refacotring Patterns ihre volle Stärke aus. Wir zeigen Dir die wichtigsten Refactoring Patterns ohne IDEA dann wie man sie mit Hilfe einer Entwicklungsumgebung wie IntelliJ oder Eclipse schneller sogar anwenden kann. 

Hier lernst Du auch wichtige Techniken wie z.B. Du ein Monster Klasse oder Monster Methode brechen kannst und wie Du mit Refactoring Patterns aus einer langen Methode eine oder mehrere Klasse extrahieren kannst. 

Was lernst Du am dritten Tag?

Am dritten Tag lernst Du weitere fortgeschrittene Techniken zum Arbeiten mit Legacy Code wie z.B. Mutation Testing, sowie Dependency Breaking Techniques.  Dadurch kannst Du die Komplixität von Legacy Code brechen. Der einst legacy Code gewesen, wird schrittweise zu einem verständlichen und angenehmen Code, auf den Du ohne Angst, was kaputt zu machen, aufbauen kannst. Der Legacy Code verschwindet langsam und wird durch Clean Code ersetzt. Dadurch steigt auch die Code Qualität gewaltig und mit ihr natürlich Deine Produktivität.

Wie geht es ab hier weiter? 

Nach diesem Kurs kannst Du Dich ziemlich gut mit den besten Techniken und Know-How zum Arbeiten mit Legacy Code. Denn Du lernst jede Technik einzelnen in einem kleinen Workshop und dadurch konzentrierst Du Dich nur auf diese Technik. Leider sind 3 Tage viel zu kurz, um dazu noch ein großes Projekt mit Legacy Code aufzunehmen. In den 3 Tagen können wir sehr froh sein, wenn Du die wichtigsten Techniken zum Arbeiten mit Legacy Code beherrschst. 

Nun kam von mehreren Teilnehmer aus verschiedenen Firmen in diesem Kurs den Wunsch nach einem Nachfolgekurs. Ein Kurs der aus einem großen Projekt mit über 5.000 Zeilen komplexen Code ohne Tests besteht. Mit anderen Wörtern: ein echtes Legacy Code Projekt mit komplexer Datenbank Anbindung, mit REST APIs, mit Monster Klassen und Methoden und mit sehr schlechten Dependency, mit starker Koppelung zwischen den Klassen und Modulen und schlechten Schnittstelle und dazu sogar fremde APIs. Ein echtes hässliches Legacy Code Projekt.  Unsere Aufgabe in diesem Nachfolge-Kurs besteht daran, dass wir innerhalb von 3 Tagen alle gelernten Techniken aus dem ersten Kurs anwenden und hier sogar fortgeschrittene Unit Testing Techniken wie Test Double Techniken und fortgeschrittene Dependency Breaking Techniken noch lernen werden, um für das hässliche Legacy Projekt schrittweise Test Suite zu erstellen und den Code in Richtung Clean Code refactoren können. Dieser Nachfolge Kurs  werden wir Legacy Code in Action. 

    Deine Trainer

    Der Java Legacy Code Kurs wird von einem der folgenden Trainer durchgeführt:

    ZERTIFIKAT

    Selbstverständlich erhältst Du als Teilnehmer am Techniken zum Arbeiten mit Java Legacy Code Kurs ein Zertifikat. Voraussetzung dafür ist die komplette Teilnahme an allen Kurseinheiten und Programmier-Aufgaben und die erfolgreiche Programmierung eines kleinen Abschlussprojektes. Das allerdings wird Dir nach dieser intensiven Java Legacy Code Schulung mehr Freude als Stress bereiten.

    Agenda

    Die Agenda ist aufgrund der zahlreichen Fachbegriffe in englischer Sprache verfasst. Beschreibungen sowie Kursmaterial erhalten Sie auf Deutsch. Den Kurs kannst Du wahlweise in deutscher oder englischer Sprache buchen.

    Alle Seminarinhalte werden individuell an die Wünsche unserer Teilnehmer angepasst. Sie können je nach Wissensstand variieren und werden gemeinsam mit dem Seminarleiter an Tag 1 definiert. Bei diesem Working with Java Legacy Code Seminar hast Du die Wahl aus folgenden Themen:

    Working with Java Legacy Code Tag 1

    Nötige Grundlagen

    • JUnit 5 Grundlagen
    • Clean Code Grundlagen
    • Refactoring Patterns Grundlagen

    Reasons to Change Software

    • Adding a feature
    • Fixing a bug

    Sicherheitsnetz Aufbauen

    • Golden Master
    • Seams
    • Test Coverage
    • Mutation Test

    Adding a Feature

    • Test Driven Development
    • Programming by Difference

    Working with Java Legacy Code Tag 2

    Get a Class into a Test Harness

    • Irritating Parameter
    • Hidden Dependency
    • Construction Blob
    • Irritating Global Dependency
    • Horrible Include Dependencies
    • Onion Parameter
    • Aliased Paremter

    Run a Methode in a Test Harness

    • Hidden Method
    • Language Feature
    • Undetectable Side Effect

    What Methods should I test?

    • Reasoning about Effects
    • Reasoning Forward
    • Effect Propagation
    • Effect Analysis

    Need to make a Change

    • Many Changes in One Area
    • Interception Points
    • Characterization Tests
    • Characterizing Classes
    • Targeted Testing
    • A Heuristic for Writing Tests
    • My Application is all APIs Calls
    • My Application has no Structure
    • May Project is not object oriented

    Working with Java Legacy Code Tag 3

    Breaking Monster Class

    • Seeing Responsibilites
    • Single Responsibility Principle
    • Moving Forward

    Changing Monster Method

    • Hidden Class
    • Extract Till You Drop

    Dependency-Breaking Techniques

    • Adapt Parameter
    • Break Out Method Object
    • Definition Completion
    • Encapsulate Global References
    • Expose Static Method
    • Extract and Override Call
    • Extract and Override Factory Method
    • Extract and Override Getter
    • Extract Implementer
    • Extract Interface
    • Introduce Instance Delegator
    • Introduce Static Setter
    • Link Substitution
    • Parameterize Constructor
    • Parmeterize Method
    • Primitivize Parameter
    • Pull up Feature
    • Push Down Dependency
    • Replace Function with Function Pointer
    • Replace Global Reference with Getter
    • Subclass and Override Method
    • Supersede Instance Variable
    • Template Redefinition
    • Text Redefinition

    Kursformate / Termine

    1-Tages-Crash-Kurs

    In München oder Online
    830,00 €

    3-Tages-Kurs

    In München oder Online
    ab 1.876,00 €

    4-Wochen-Training

    1.876,00 €
    Einstieg jederzeit möglich

    Für Teams

    Haben Sie Interesse an einem Kurs für Ihr Team? Get in touch – wir finden eine perfekte Lösung. Gerne kommen unsere Profis auch zu Ihnen. Wir bieten u.a.:

    • Inhouse-Schulungen
    • Technisches Coaching
    • Consulting
    Anfragen Anfragen

    Fragen & Beratung

    Unser Serviceteam berät Sie gerne persönlich. Mo-Fr von 9.00 bis 18.00 Uhr unter:
    +49 89 17958-820
    info@coding-academy.com

    Referenzen

    BMW Apple Draeger VW Sky Siemens 2000px TÜ V Süd Logo Agfa Kopie Samsung Fraunhofer
    Kurs-Katalog Raketen-Kurse im Überblick: