Superzeichenbildung (Chunking)¶
- Superzeichen sind hierarchisch organisiert
-
Beispiel Memory
- Erwachsene nutzen Strategien (dritte Reihe von oben, zweite Karte von links)
- Kinder merken sich vermutlich die Konstellation
- Ergebnis – Kinder gewinnen in den meisten Fällen
-
Beispiele für Superzeichenbildung
- Wörter anstelle Einzelbuchstaben
- Bilder (Eindrücke) anstelle des Wortes
- Sätze anstelle Einzelworte
- Funktioniert jedoch nur wenn die Informationseinheiten bekannt sind
- Symbolische Namen
- 6A B7 anstelle 0110 1010 1011 0111
- bluehands.de anstelle 109.109.201.186
Chunks im Code¶
- Schlüsselwörter (class, struct, function) vermitteln den Anfang eines Programmelements
- Trennzeichen (Semikolon, Komma) trennen Programmelemente
- Gruppierungszeichen (Klammern) gruppieren Programmelemente
- Operatoren vermitteln eine Operation auf Argumenten
- Literale werden je nach Kontext als Wert oder Variable interpretiert
- Namen vermitteln eine Semantik
- Argumentpositionen vermitteln eine Rolle
Kombinieren von Chunks¶
- Struktur erkennen: Klasse, Feld, Methode
- Fachliche Bedeutung erfassen: Konto (Account), Guthaben (balance), Überweisung (Transfer)
- Ablauf verstehen: Prüfung -> Abbuchung -> Gutschrift
- Gesamtbild: eine Bankkontoabstraktion
Was überfordert unser Gehirn¶
- Eine Operation verarbeitet zu viele Input-Chunks
- Unser Gedächtnis kann die Output-Chunks nicht mehr halten
- Unser Gedächtnis muss Chunks von früheren Berechnungen (Zwischenergebnisse) vorhalten
Unverständlicher Code analysieren¶
- Wie viele Chunks muss ich gleichzeitig verarbeiten?
- Kann ich mir unter den Variablen, Methoden, Klassen etwas vorstellen?
- Habe ich echte Abstraktionen oder nur Zusammenfassungen?
- Gibt es Widersprüche zwischen der niedergeschriebenen Logik und den Namen?
- Passt der Datenfluss oder Kontrollfluss zu den Abstraktionen?
Maßnahmen¶
- zu viele Chunks gleichzeitig:
- Zerlegung der Logik in kleinere Schritte
- (Teil-)Operationen abstrahieren
- Zwischenergebnisse möglichst früh konsumieren
- multiple Ergebnisse abstrahieren oder aggregieren
- falsche Namen korrigieren
- ungenaue Namen präzisieren
- Namenskonventionen einhalten
- falsche Abstraktionen
- Suche nach passenderen Abstraktionen
- falsche Abstraktionen auflösen und neu gruppieren
- Widersprüche in Logik und/oder Namen
- Klärung, ob Logik oder Namen das Problem sind
Möglichkeiten Code Komplexität klein zu halten¶
- Pair programming
- Code-Reviews
- “Selbstdokumentierender Code”
- Mob Programming, Quality Meetings im Team
Diskussion “synchronisiert” chunks¶
Last update :
April 15, 2025
Created : April 15, 2025
Created : April 15, 2025