HeadlinesBriefing HeadlinesBriefing.com

Dorong if atas dan for bawah: idiom pemrograman

Hacker News •
×

Heuristik pemrograman 'dorong if ke atas dan for ke bawah' menyarankan bahwa logika kondisional (pernyataan if) harus dipindahkan ke atas menuju pemanggil, sementara loop iteratif (for) harus didorong ke bawah menuju pemrosesan batch. Ini meningkatkan kejelasan dan kinerja dengan memusatkan percabangan dan memanfaatkan operasi batch.

Matklad telah membahas prinsip ini, menunjukkan bahwa mendorong kondisional ke atas berarti pemanggil menangani kasus seperti None, sementara fungsi mengambil Walrus biasa. Mendorong loop ke bawah melibatkan menunda loop sampai setelah penyaringan, sehingga loop panas berjalan tanpa cabang dan menjadi kandidat untuk vektorisasi. Kedua gerakan tersebut digabungkan: diberikan koleksi nilai Option<Walrus>, pemanggil membuang None dan menyerahkan Vec<Walrus> ke frobnicate_batch, yang tidak pernah melihat None.

Prinsip ini memiliki aplikasi yang lebih luas dalam optimasi kueri basis data relasional dan pemrograman fungsional. Dalam optimasi kueri basis data, prinsip yang sama muncul sebagai 'proyeksi awal, gabungan akhir'. Proyeksi dan seleksi awal mengurangi lebar dataset dan menyaring lebih awal, sementara gabungan ditunda untuk berjalan pada input yang lebih kecil. Kosakatanya terbalik: rencana kueri adalah pohon di mana data mengalir dari daun ke atas, jadi 'bawah pohon' berarti 'lebih awal dalam eksekusi'.

Sumber: Hacker News · Diringkas oleh HeadlinesBriefing