HeadlinesBriefing HeadlinesBriefing.com

Pousser if haut et for bas : idiome de programmation

Hacker News •
×

L'heuristique de programmation 'pousser les if vers le haut et les for vers le bas' suggère que la logique conditionnelle (instructions if) doit être déplacée vers le haut, vers l'appelant, tandis que les boucles itératives (for) doivent être poussées vers le bas, vers le traitement par lots. Cela améliore la clarté et les performances en centralisant les branchements et en tirant parti des opérations par lots.

Matklad a discuté de ce principe, démontrant que pousser les conditionnels vers le haut signifie que l'appelant gère des cas comme None, tandis que la fonction prend un Walrus simple. Pousser les boucles vers le bas implique de différer les boucles jusqu'après le filtrage, afin que la boucle chaude s'exécute sans branche et soit candidate à la vectorisation. Les deux mouvements se composent : étant donné une collection de valeurs Option<Walrus>, l'appelant jette les None et remet un Vec<Walrus> à frobnicate_batch, qui ne voit jamais de None.

Ce principe a des applications plus larges dans les optimisations de requêtes de bases de données relationnelles et la programmation fonctionnelle. Dans l'optimisation de requêtes de bases de données, le même principe apparaît comme 'projections tôt, jointures tard'. Les projections et sélections précoces réduisent la largeur de l'ensemble de données et filtrent tôt, tandis que les jointures sont différées pour s'exécuter sur des entrées plus petites. Le vocabulaire est à l'envers : un plan de requête est un arbre où les données circulent des feuilles vers le haut, donc 'bas de l'arbre' signifie 'plus tôt dans l'exécution'.

Source: Hacker News · Résumé par HeadlinesBriefing