Verschachtelung ist das Einbetten einer Struktur in eine gleichartige: eine Schleife in einer Schleife, eine Bedingung in einer Bedingung, ein Objekt in einem Objekt. Sie kommt in Quelltext ebenso vor wie in Datenformaten und in Stylesheets.
- Verschachtelung
Das Einbetten einer Struktur in eine gleichartige, etwa einer Schleife in eine Schleife.
Beispiel: „Die Verschachtelung ging über fünf Ebenen, und niemand wusste mehr, welche Bedingung wozu gehörte.“Sichtbar wird sie durch die Einrückung.
In JSON ist sie die Regel; in CSS kam sie erst mit den Vorverarbeitern und später in die Sprache selbst.
Wo Verschachtelung nötig ist
Überall dort, wo der Gegenstand selbst geschachtelt ist. Eine Bestellung enthält Positionen, eine Position enthält Mengen und Preise; das in einer flachen Liste abzubilden, kostet mehr, als es einbringt.
Ebenso bei Durchläufen über mehrdimensionale Daten. Wer jede Zeile einer Tabelle und darin jede Spalte betrachtet, braucht zwei Ebenen, und daran ist nichts falsch.
Warum Tiefe bei der Verschachtelung teuer wird
Weil der Leser alle offenen Ebenen gleichzeitig im Kopf behalten muss. Bei zwei geht das, bei fünf nicht mehr; jede Zeile ist dann nur noch im Zusammenhang von vier weiteren zu verstehen.
Dazu kommt die Rechenzeit. Zwei ineinanderliegende Schleifen über je tausend Elemente sind eine Million Durchläufe, und das fällt erst mit echten Datenmengen auf.
Wie sich Verschachtelung auflösen lässt
Durch frühes Aussteigen. Statt den gesamten Rest in eine Bedingung zu hüllen, prüft man den Sonderfall zuerst und verlässt die Funktion; der Hauptfall bleibt dann auf der ersten Ebene.
Der zweite Weg ist das Herausziehen in eigene Funktionen. Was auf der dritten Ebene steht, hat meist einen eigenen Namen verdient, und mit dem Namen verschwindet die Ebene.