HeadlinesBriefing HeadlinesBriefing.com

Ifs hoch und Fors runter: Programmier-Idiom

Hacker News •
×

Die Programmier-Heuristik 'Ifs nach oben und Fors nach unten' schlägt vor, dass bedingte Logik (if-Anweisungen) nach oben in Richtung Aufrufer verschoben werden sollte, während iterative Schleifen (for) nach unten in Richtung Stapelverarbeitung gedrückt werden sollten. Dies verbessert Klarheit und Leistung, indem Verzweigungen zentralisiert und Stapeloperationen genutzt werden.

Matklad hat dieses Prinzip diskutiert und gezeigt, dass das Verschieben von Bedingungen nach oben bedeutet, dass der Aufrufer Fälle wie None behandelt, während die Funktion einen einfachen Walrus akzeptiert. Das Verschieben von Schleifen nach unten beinhaltet das Aufschieben von Schleifen bis nach dem Filtern, sodass die heiße Schleife ohne Verzweigung läuft und ein Kandidat für Vektorisierung ist. Die beiden Bewegungen kombinieren sich: Bei einer Sammlung von Option<Walrus>-Werten verwirft der Aufrufer die Nones und übergibt ein Vec<Walrus> an frobnicate_batch, das nie ein None sieht.

Dieses Prinzip hat breitere Anwendungen in relationalen Datenbankabfrageoptimierungen und funktionaler Programmierung. Bei der Datenbankabfrageoptimierung erscheint dasselbe Prinzip als 'Projektionen früh, Joins spät'. Frühe Projektionen und Selektionen reduzieren die Breite des Datensatzes und filtern früh, während Joins aufgeschoben werden, um auf kleineren Eingaben zu laufen. Das Vokabular ist umgekehrt: Ein Abfrageplan ist ein Baum, in dem Daten von den Blättern nach oben fließen, also bedeutet 'unten im Baum' 'früher in der Ausführung'.

Quelle: Hacker News · Zusammengefasst von HeadlinesBriefing