Skip to content

Refactoring und Code-QualitätAktivitäten & Unterrichtsstrategien

Aktives Lernen eignet sich besonders gut für Refactoring und Code-Qualität, weil Schülerinnen und Schüler durch praktische Arbeit direkt erleben, wie kleine Veränderungen große Auswirkungen auf die Lesbarkeit und Wartung von Code haben. Durch das Erkennen und Beheben von Code Smells entwickeln sie ein Gespür für Qualitätsstandards, das sie später selbstständig anwenden können.

Klasse 10Digitale Welten Gestalten: Informatik in der Praxis4 Aktivitäten25 Min.45 Min.

Lernziele

  1. 1Identifizieren Sie 'Code Smells' in gegebenem Quellcode, die auf Refactoring-Bedarf hinweisen.
  2. 2Wenden Sie spezifische Refactoring-Techniken wie 'Extract Method' oder 'Rename Variable' an, um die Code-Qualität zu verbessern.
  3. 3Analysieren Sie die Auswirkungen von Refactoring auf die Lesbarkeit und Wartbarkeit von Code-Abschnitten.
  4. 4Bewerten Sie die Effizienz von zwei Code-Varianten vor und nach dem Refactoring hinsichtlich ihrer Laufzeit.
  5. 5Erklären Sie die Notwendigkeit kontinuierlichen Refactorings für die langfristige Projektgesundheit.

Möchten Sie einen vollständigen Unterrichtsentwurf mit diesen Lernzielen? Mission erstellen

30 Min.·Partnerarbeit

Pair Programming: Smell-Jagd

Paare erhalten unrefaktorierten Code und identifizieren gemeinsam drei Code Smells. Sie refactoren schrittweise: Zuerst umbenennen, dann extrahieren, zuletzt testen. Am Ende präsentieren sie die Verbesserungen.

Vorbereitung & Details

Warum ist kontinuierliches Refactoring ein wichtiger Bestandteil der Softwareentwicklung?

Moderationstipp: Bei der Pair Programming Smell-Jagd darauf achten, dass beide Partner abwechselnd den Treiber und den Navigator stellen, um eine aktive Beteiligung zu gewährleisten.

Setup: Gruppentische mit Zugang zu Recherchequellen

Materials: Dokumentation des Problemszenarios, KWL-Tabelle (Wissen, Wollen, Lernen) oder Inquiry-Framework, Ressourcenpool / Handapparat, Vorlage für die Ergebnispräsentation

AnalysierenBewertenErschaffenEntscheidungsfähigkeitSelbststeuerungBeziehungsfähigkeit
45 Min.·Kleingruppen

Lernen an Stationen: Refactoring-Techniken

Richten Sie Stationen für Extrahieren Methode, Replace Temp with Query und Introduce Parameter Object ein. Gruppen rotieren alle 10 Minuten, dokumentieren Vorher-Nachher-Code und diskutieren Vorteile.

Vorbereitung & Details

Wie identifiziert man 'Code Smells', die auf Verbesserungsbedarf hinweisen?

Moderationstipp: An den Stationen zu Refactoring-Techniken klare Zeitlimits setzen und die Schülerinnen und Schüler anhalten, ihre Refactorings direkt mit Unit-Tests zu überprüfen.

Setup: Im Raum verteilte Tische/Stationen

Materials: Stationskarten mit Arbeitsanweisungen, Unterschiedliche Materialien je Station, Timer für die Rotation

ErinnernVerstehenAnwendenAnalysierenSelbststeuerungBeziehungsfähigkeit
35 Min.·Ganze Klasse

Code Review Circle

Jede Schülerin oder jeder Schüler schreibt eine kleine Methode. Im Kreis reicht man den Code weiter, jeder notiert einen Smell und schlägt eine Refactoring-Idee vor. Abschließend implementiert man kollektiv.

Vorbereitung & Details

Bewerten Sie die Auswirkungen von Refactoring auf die Projektlaufzeit und die langfristige Code-Qualität.

Moderationstipp: Im Code Review Circle die Gruppen so zusammenstellen, dass Schülerinnen und Schüler mit unterschiedlichen Stärken zusammenarbeiten, um voneinander zu lernen.

Setup: Gruppentische mit Zugang zu Recherchequellen

Materials: Dokumentation des Problemszenarios, KWL-Tabelle (Wissen, Wollen, Lernen) oder Inquiry-Framework, Ressourcenpool / Handapparat, Vorlage für die Ergebnispräsentation

AnalysierenBewertenErschaffenEntscheidungsfähigkeitSelbststeuerungBeziehungsfähigkeit
25 Min.·Einzelarbeit

Individuell: Refactoring Diary

Schülerinnen und Schüler refactoren ihren eigenen Code aus einer Vorlesung. Sie führen ein Diary: Smell, Technik, Zeitaufwand, Qualitätsgewinn. Teilen Sie Highlights in Plenum.

Vorbereitung & Details

Warum ist kontinuierliches Refactoring ein wichtiger Bestandteil der Softwareentwicklung?

Moderationstipp: Das Refactoring Diary als tägliches Reflexionsinstrument nutzen, um Fortschritte sichtbar zu machen und Fragen für die nächste Einheit zu sammeln.

Setup: Gruppentische mit Zugang zu Recherchequellen

Materials: Dokumentation des Problemszenarios, KWL-Tabelle (Wissen, Wollen, Lernen) oder Inquiry-Framework, Ressourcenpool / Handapparat, Vorlage für die Ergebnispräsentation

AnalysierenBewertenErschaffenEntscheidungsfähigkeitSelbststeuerungBeziehungsfähigkeit

Dieses Thema unterrichten

Erfahrene Lehrkräfte betonen, dass Refactoring am besten durch unmittelbare Praxis und Feedback gelernt wird. Vermeiden Sie es, zu viel Theorie vorab zu vermitteln – stattdessen sollten die Schülerinnen und Schüler direkt mit Code arbeiten und ihre eigenen Erfahrungen machen. Nutzen Sie die 'Fehlerkultur' als Lernchance: Fehler sind kein Scheitern, sondern zeigen, wo Verbesserungspotenzial besteht. Regelmäßige Reflexionsphasen im Plenum festigen das Gelernte und ermöglichen es, Missverständnisse frühzeitig zu klären.

Was Sie erwartet

Am Ende dieser Einheit sollen die Schülerinnen und Schüler Code Smells nicht nur identifizieren, sondern auch gezielt refaktorieren können. Erfolg zeigt sich darin, dass sie Refactoring-Techniken sinnvoll auswählen und ihre Entscheidungen mit konkreten Beispielen begründen. Zudem sollen sie den Wert von kontinuierlichem Refactoring für die Softwareentwicklung erkennen und argumentieren können.

Diese Aktivitäten sind ein Ausgangspunkt. Die vollständige Mission ist das Erlebnis.

  • Vollständiges Moderationsskript mit Lehrkraft-Dialogen
  • Druckfertige Schülermaterialien, bereit für den Unterricht
  • Differenzierungsstrategien für jeden Lerntyp
Mission erstellen

Vorsicht vor diesen Fehlvorstellungen

Häufige FehlvorstellungWährend der Pair Programming Smell-Jagd könnte eine Schülerin oder ein Schüler behaupten, dass Refactoring die Funktionalität ändert, weil der Code danach anders aussieht.

Was Sie stattdessen lehren sollten

Bestätigen Sie die Aussage zunächst und fragen Sie nach: 'Wie können wir sicherstellen, dass die Funktionalität gleich bleibt?' Fordern Sie die Schülerinnen und Schüler auf, Unit-Tests vor und nach dem Refactoring auszuführen, um dies zu überprüfen. Nutzen Sie die Pair-Session, um gemeinsam zu analysieren, warum Tests scheitern, wenn die Funktionalität nicht erhalten bleibt.

Häufige FehlvorstellungWährend des Stationenlernens zu Refactoring-Techniken könnte ein Schüler argumentieren, dass guter Code von Anfang an perfekt sein muss.

Was Sie stattdessen lehren sollten

Fordern Sie die Schülerinnen und Schüler auf, ihre anfänglichen Entwürfe mit den refaktorierten Versionen zu vergleichen. Stellen Sie gezielte Fragen: 'Wo haben Sie Zeit gespart? Wo sehen Sie noch Verbesserungsmöglichkeiten?' Nutzen Sie die Ergebnisse der Kollaboration, um zu zeigen, dass Perfektion ein Prozess ist und nicht sofort erreicht werden muss.

Häufige FehlvorstellungWährend des Code Review Circle könnte eine Schülerin oder ein Schüler behaupten, dass Refactoring nur die Projektzeit verlängert.

Was Sie stattdessen lehren sollten

Lassen Sie die Gruppen vor und nach dem Refactoring eine Schätzung abgeben, wie lange sie für die Fehlerbehebung oder Erweiterung des Codes benötigen würden. Vergleichen Sie diese Schätzungen mit der tatsächlichen Zeit nach dem Refactoring. Nutzen Sie die Diskussion, um den Return on Investment von Refactoring sichtbar zu machen.

Ideen zur Lernstandserhebung

Gegenseitige Bewertung

Nach der Pair Programming Smell-Jagd tauschen die Partner ihre Notizen aus und überprüfen gegenseitig die identifizierten Code Smells und die vorgeschlagenen Refactorings. Die Lehrkraft sammelt die Notizen ein und nutzt sie, um den Lernfortschritt zu bewerten und gezielte Rückmeldungen zu geben.

Lernstandskontrolle

Während des Stationenlernens zu Refactoring-Techniken erhalten die Schülerinnen und Schüler einen kurzen Code-Abschnitt als Exit-Ticket. Sie müssen einen Code Smell identifizieren und eine konkrete Refactoring-Maßnahme beschreiben. Die Antworten werden eingesammelt und ausgewertet, um den Lernstand zu überprüfen.

Kurze Überprüfung

Nach dem Code Review Circle präsentiert die Lehrkraft einen Code-Abschnitt mit einer magischen Zahl an der Tafel. Die Schülerinnen und Schüler werden aufgefordert, in einem kurzen Diskussionsbeitrag zu erklären, warum die magische Zahl problematisch ist und wie sie durch eine Konstante ersetzt werden kann. Die Beiträge werden genutzt, um das Verständnis zu vertiefen und offene Fragen zu klären.

Erweiterungen & Unterstützung

  • Fordern Sie schnelle Lernende auf, einen komplexeren Code-Snippet mit mehreren Code Smells zu refaktorieren und ihre Lösung ausführlich zu dokumentieren.
  • Für Schülerinnen und Schüler, die unsicher sind, bieten Sie eine Schritt-für-Schritt-Anleitung mit Beispielen für die Refactoring-Techniken an der Station an.
  • Nutzen Sie zusätzliche Zeit, um ein gemeinsames Refactoring-Projekt zu starten, bei dem die Klasse einen unfertigen oder fehlerhaften Code gemeinsam verbessert und die Schritte detailliert bespricht.

Schlüsselvokabular

RefactoringDie systematische Umstrukturierung von Quellcode, um dessen interne Qualität zu verbessern, ohne die externe Funktionalität zu verändern.
Code SmellEin Symptom im Quellcode, das auf ein tieferliegendes Problem hinweist und oft durch Refactoring behoben werden kann.
Duplizierter CodeIdentische oder sehr ähnliche Codeblöcke, die an mehreren Stellen im Programm vorkommen und die Wartbarkeit erschweren.
Lange MethodeEine Methode, die zu viele Anweisungen enthält, was ihre Lesbarkeit und Verständlichkeit beeinträchtigt und oft auf mehrere kleinere Methoden aufgeteilt werden sollte.
Magische ZahlEin numerischer oder Zeichenketten-Literalwert, dessen Bedeutung nicht sofort ersichtlich ist und der durch eine benannte Konstante ersetzt werden sollte.

Bereit, Refactoring und Code-Qualität zu unterrichten?

Erstellen Sie eine vollständige Mission mit allem, was Sie brauchen

Mission erstellen