Menaikkan kondisional di dalam fungsi
- Jika ada kondisional
if di dalam fungsi, pertimbangkan untuk memindahkannya ke pemanggil (caller).
- Alih-alih fungsi memeriksa prasyarat di dalamnya dan "tidak melakukan apa pun" jika kondisi tidak terpenuhi, biarkan pemanggil memeriksa prasyarat sehingga melalui tipe dapat dijamin bahwa prasyarat telah terpenuhi.
- Terutama ketika prasyarat "dinaikkan", jumlah pemeriksaan secara keseluruhan dapat berkurang, dan ini adalah salah satu motivasi aturan ini.
Menurunkan perulangan
- Aturan yang berasal dari pemikiran berorientasi data ini memperkenalkan konsep 'batch' pada objek, menjadikan operasi batch sebagai kasus dasar, dan memperlakukan versi skalar sebagai kasus khusus dari versi batch.
- Peningkatan performa adalah manfaat utamanya, karena biaya awal dapat didistribusikan dan urutan pemrosesan bisa menjadi lebih fleksibel.
- Sebagai contoh, pada perkalian polinomial berbasis FFT, mengevaluasi polinomial secara bersamaan di banyak titik bisa lebih cepat daripada evaluasi satu per satu.
Opini GN⁺
- Hal terpenting dalam tulisan ini adalah dua aturan pemrograman, yaitu 'menaikkan kondisional' dan 'menurunkan perulangan', untuk meningkatkan performa dan kejelasan kode dalam pengembangan perangkat lunak.
- Aturan-aturan ini membantu meningkatkan keterbacaan kode, mengoptimalkan performa, dan mengurangi kemungkinan terjadinya bug.
- Tulisan ini menarik dan bermanfaat bagi banyak pengembang karena memberikan wawasan tentang cara mengelola kompleksitas rekayasa perangkat lunak dan menulis kode yang efisien.
1 komentar
Komentar Hacker News
ifmemang seharusnya berada di bagian atas fungsi, bukan di bawah, dan error harus dapat dipropagasikan dengan baik.iftidak bisa dipindahkan ke atas ketika kondisinya sering bergantung padawalrus.ifprasyarat ke pemanggil adalah ide yang mengerikan. Dalam kasus khusus itu mungkin ide yang bagus, tetapi secara umum hal itu tidak diinginkan. Dalam library, prasyarat seharusnya diperiksa di batas eksternal agar implementasi internal bisa berjalan tanpa asumsi internal. Mengandalkan pemeriksaan oleh pemanggil justru meniadakan tujuannya.