3 poin oleh GN⁺ 2023-09-17 | 1 komentar | Bagikan ke WhatsApp
  • Artikel yang membahas keterbacaan kode linear sambil menantang sudut pandang yang diajukan di Google Testing Blog
  • Penulis tidak setuju dengan klaim Google Testing Blog bahwa fungsi yang memisahkan tingkat abstraksi lebih mudah dibaca
  • Penulis berargumen bahwa kode linear yang dibaca dari atas ke bawah lebih intuitif dan lebih mudah dipahami daripada kode yang bolak-balik di antara berbagai tingkat abstraksi
  • Penulis menjelaskan argumennya dengan contoh fungsi memanggang pizza, sambil mempertanyakan apakah fungsi memanggang pizza harus memanaskan oven atau apakah oven seharusnya dipanaskan terlebih dahulu
  • Penulis mengusulkan bahwa keterbacaan kode bukan berasal dari struktur yang memisahkan tingkat abstraksi, melainkan dari penjelasan yang jelas tentang apa yang dilakukan tiap bagian kode
  • Penulis menentang mengekstrak fungsi-fungsi kecil dari kode linear, terutama bila hanya digunakan sekali, dan menyimpulkan bahwa manfaatnya tidak cukup untuk mengimbangi hilangnya linearitas
  • Penulis juga menunjukkan potensi masalah terkait fungsi memanggang pizza, dengan mempertanyakan mengapa oven baru dibuat setiap kali pizza dibuat, yang dapat menimbulkan masalah performa dalam kode nyata
  • Penulis menyarankan agar oven menjadi parameter fungsi dan penyediaannya menjadi tanggung jawab pemanggil, serta bahwa fungsi tersebut seharusnya mengembalikan kotak, bukan pizza

1 komentar

 
GN⁺ 2023-09-17
Komentar Hacker News
  • Keterbacaan kode linear dan kode modular adalah masalah gaya, dan membutuhkan penilaian serta insting yang baik.
  • Abstraksi yang berlebihan dapat menyebabkan pengikatan kode terlalu dini.
  • Mengekstrak fungsi untuk mengabstraksikan unit kerja dapat merapikan algoritme, tetapi harus digunakan dengan hati-hati.
  • Contoh kode yang diberikan sederhana dan kurang skalabel. Kemampuan penggunaan ulang dan kemungkinan untuk diuji per unit juga perlu dipertimbangkan.
  • Refaktorisasi yang berlebihan dapat membuat pemeliharaan lebih sulit karena adanya kebutuhan untuk memindahkan bagian kode lain.
  • Kode linear mudah dibaca karena mengikuti urutan eksekusi, tetapi kurang skalabel dalam codebase besar.
  • Fungsi-fungsi ringkas dengan call stack bertingkat dalam bisa menjadi mimpi buruk dalam codebase besar.
  • Kode linear yang baik lebih mudah dibaca, tetapi lebih sulit dipelihara dan diuji.
  • Menjaga fungsi sekecil mungkin dan sedekat mungkin pada satu tujuan adalah praktik yang baik.
  • Struktur kode harus disusun agar sesuai dengan use case bisnis supaya mudah dinavigasi.
  • Kode linear dan kode modular sama-sama dibaca secara linear, tetapi urutan fungsi dapat memengaruhi keterbacaan.
  • Kode nyata sering kali lebih kompleks, dan pembaca membutuhkan gambaran tingkat tinggi agar tidak tersesat dalam detail.