Refactoring for Novices in Java: An Eye Tracking Study on the Extract vs. Inline Methods

Eine Eye-Tracking-Studie mit Java-Anfängern zeigt, dass die Extraktion von Methoden die Lesbarkeit und Leistung bei komplexen Aufgaben verbessert, bei einfachen Aufgaben jedoch durch erhöhten Navigationsaufwand und kognitive Last die Performance verschlechtert, was zu einer vorsichtigen Anwendung von Modularisierung im Anfängerunterricht raten lässt.

José Aldo Silva da Costa, Rohit Gheyi, José Júnior Silva da Costa, Márcio Ribeiro, Rodrigo Bonifácio, Hyggo Almeida, Ana Carla Bibiano, Alessandro Garcia

Veröffentlicht 2026-03-06
📖 5 Min. Lesezeit🧠 Tiefgang

Each language version is independently generated for its own context, not a direct translation.

Titel: Warum das „Zerlegen" von Code Anfänger manchmal verwirrt – Eine Studie mit Augen-Tracking

Stellen Sie sich vor, Sie lesen ein Kochrezept. Es gibt zwei Möglichkeiten, wie es geschrieben sein kann:

  1. Variante A (Inline): Alles steht in einer langen Liste. „Nehmen Sie 2 Eier, schlagen Sie sie auf, geben Sie Mehl dazu, rühren Sie um, backen Sie bei 180 Grad..." – alles in einem Durchgang.
  2. Variante B (Extract): Das Rezept ist in Abschnitte unterteilt. Zuerst steht dort: „Bereiten Sie den Teig vor." Dann, an einer anderen Stelle im Buch, finden Sie die Anleitung: „Teig vorbereiten: 2 Eier schlagen, Mehl hinzufügen..."

In der Welt der Programmierung nennen wir das Inline Method (alles in einem Block) und Extract Method (Teile in eine eigene Funktion auslagern). Die Experten sagen seit Jahren: „Variante B ist besser! Sie ist übersichtlicher, wiederverwendbar und professioneller."

Aber eine neue Studie aus Brasilien stellt diese Weisheit infrage – zumindest für Anfänger.

Das Experiment: Ein Blick in die Gedanken der Anfänger

Die Forscher wollten wissen: Wie verstehen Anfänger (Leute, die gerade erst Java lernen) diese beiden Varianten? Um das herauszufinden, ließen sie 32 Anfänger vor einem Computer sitzen, während eine spezielle Kamera ihre Augenbewegungen verfolgte.

Stellen Sie sich die Augen wie eine Taschenlampe vor. Wo die Lampe hinfällt, denkt das Gehirn gerade.

  • Feste Blicke (Fixationen): Wo die Lampe kurz stehen bleibt, um etwas zu lesen.
  • Rückwärts-Sprünge (Regressions): Wenn die Lampe schnell wieder nach oben springt, weil man etwas nicht verstanden hat und es noch einmal lesen muss.

Die Teilnehmer mussten einfache Aufgaben lösen, wie zum Beispiel: „Berechne die Fläche eines Quadrats" oder „Berechne die Fakultät einer Zahl" (eine etwas komplexere Rechnung). Für jede Aufgabe gab es zwei Versionen des Codes: eine, bei der alles in einem Stück stand, und eine, bei der Teile herausgeschnitten und in eine eigene Funktion verpackt wurden.

Die überraschenden Ergebnisse

Das Ergebnis war wie ein Zungenbrecher: Es kommt darauf an, wie kompliziert die Aufgabe ist.

1. Bei einfachen Aufgaben: „Zerlegen" ist hinderlich

Bei sehr einfachen Aufgaben (z. B. „Fläche eines Quadrats berechnen") war die Inline-Variante (Variante A) viel besser.

  • Warum? Die Logik war so simpel, dass sie auf einen Blick verstanden wurde.
  • Das Problem bei Variante B: Als die Forscher den Code in eine separate Funktion packten, mussten die Anfänger ständig hin- und herspringen. Sie schauten auf den Befehl „Fläche berechnen", sprangen dann zur Definition der Funktion, sprangen wieder zurück.
  • Die Metapher: Stellen Sie sich vor, Sie müssen nur einen Brief öffnen. Wenn der Brief in einem Umschlag liegt, der in einem anderen Raum steht, müssen Sie erst zum anderen Raum gehen, den Brief holen, zurückkommen und ihn öffnen. Das kostet Zeit und Energie. Bei einer so simplen Aufgabe ist der „Umschlag" (die separate Funktion) nur unnötiger Aufwand.
  • Ergebnis: Die Anfänger brauchten bis zu 167 % mehr Zeit und sprangen bis zu 200 % öfter zurück, wenn der Code „zerlegt" war.

2. Bei komplexeren Aufgaben: „Zerlegen" hilft

Bei etwas schwierigeren Aufgaben (z. B. „Fakultät berechnen" oder „Größte Note finden") war die Extract-Variante (Variante B) deutlich besser.

  • Warum? Hier war der Code lang und verworren. Die separate Funktion wirkte wie ein Schild oder ein Hinweisschild. Der Name der Funktion (z. B. „Fakultät berechnen") sagte dem Anfänger sofort: „Hier passiert das Wichtigste, du musst nicht jede einzelne Zeile lesen."
  • Die Metapher: Wenn Sie einen ganzen Koffer voller Kleidung sortieren müssen, hilft es, wenn Sie die Socken in einen Korb und die Hemden in einen anderen packen. Sie müssen nicht alles durcheinanderwühlen. Der Name des Korbes („Socken") gibt Ihnen Orientierung.
  • Ergebnis: Die Anfänger waren bis zu 78 % schneller und sprangen viel weniger zurück. Sie konnten sich auf die Logik konzentrieren, anstatt sich in Details zu verlieren.

Das große Missverständnis: Was wir glauben vs. was wir tun

Ein besonders interessanter Punkt der Studie ist die Diskrepanz zwischen Gefühl und Realität.

  • Die Umfrage: Als die Forscher die Anfänger befragten, sagten die meisten: „Ich mag die zerlegte Version (Variante B) viel lieber! Sie sieht ordentlicher aus und ist besser strukturiert."
  • Die Realität: Während sie die Aufgaben lösten, zeigten ihre Augenbewegungen, dass sie bei einfachen Aufgaben mit der zerlegten Version viel mehr Stress hatten. Sie dachten, es sei einfacher, aber ihre Augen bewiesen, dass sie mehr Arbeit hatten.

Es ist, als würde jemand sagen: „Ich mag es, wenn mein Auto viele separate Knöpfe hat, weil es professioneller aussieht", aber beim Fahren merkt er, dass er ständig die Hände vom Lenkrad nehmen muss, um die Knöpfe zu drücken, und dadurch langsamer ist.

Was bedeutet das für uns?

Diese Studie ist wie ein Warnschild für Lehrer und Ausbilder:

  1. Nicht zu früh modularisieren: Wenn man Anfängern beibringt, Code sofort in viele kleine Funktionen zu zerlegen, kann das bei einfachen Übungen verwirrend sein. Es zwingt sie, ständig hin- und herzuschauen, anstatt den Fluss zu verstehen.
  2. Der Name ist nicht alles: Man glaubt oft, ein guter Name (wie „Fläche berechnen") reicht aus, um das Verständnis zu erleichtern. Aber für Anfänger reicht das oft nicht. Sie müssen trotzdem zur Funktion springen, um zu prüfen, ob der Name stimmt. Das kostet Zeit.
  3. Kontext ist König: Es gibt keine „eine beste Lösung". Bei einfachen Dingen ist „alles an einem Ort" oft besser. Bei komplexen Dingen hilft die Aufteilung.

Fazit

Die Studie zeigt uns, dass das, was für erfahrene Entwickler „sauberer Code" ist, für Anfänger manchmal wie ein Labyrinth wirken kann. Die Augen der Anfänger verraten uns: Manchmal ist weniger Struktur (weniger Zerlegen) mehr, wenn die Aufgabe einfach ist. Und manchmal ist mehr Struktur (Zerlegen) der Schlüssel zum Verständnis, wenn die Aufgabe schwer ist.

Es ist eine Erinnerung daran, dass wir beim Unterrichten von Programmieren nicht nur auf den Code schauen sollten, sondern auch darauf, wie das menschliche Gehirn (und die Augen) damit umgeht.