Rangkuman Buku CLEAN CODE : A Handbook of Agile Software Craftsmanship!!
-
Programmer harus menjaga kode
tetap bersih sama seperti manager menjaga jadwal dan requirement
-
Agar bekerja lebih cepat, kode
harus dijaga agar tetap bersih
-
setiap code harus tetap bisa
dibaca, karena ada orang lain yang akan menuliskan kode selain saya
-
Gunakan penamaan yang bermakna,
bermaksud, dan yang bisa diucapkan
-
Hindari penamaan yang sama dengan
nama variabel atau prosedur lain walaupun dengan kebetulan, dan puns (hindari
penggunaan kata bercandaan atau permainan kata)
-
Cakupan yang lebih luas, harus
memiliki nama yang lebih panjang
-
Nama class harus menggunakan kata
benda, nama method harus menggunakan kata kerja
-
Fungsi atau prosedur harus dalam
skala se kecil kecilnya, hanya melakukan 1 tugas
-
Keseluruhan kode harus bisa dibaca
dari atas ke bawah
-
Parameter membuat kamu sulit untuk
memahami sebuah fungsi dan sering berada pada tingkat abstraksi yang lebih
rendah, maka hindari itu
-
Hindari duplikasi
-
Komentar tepatnya digunakan di
dalam kode yang gagal dijelaskan pada kode tersebut, untung mengimbagi bad code
-
Komentar yang baik yaitu :
komentar legal, komentar informatif, penjelasan maksud, peringatan, apa yang
harus dilakukan, menandai yang penting, dan dokumentasi public API
-
Hindari file yang terlalu panjang
(jumlah line), 200 line sudah cukup
-
File yang bagus adalah seperti
berita, punya heading, isi, dan detail
-
Gunakan baris kosong untuk
menunjukkan keterkaitan dan keterpisahan
-
Tambahkan baris kosong diantara
prosedur/fungsi yang berbeda, jangan gunakan baris kosong untuk prosedur/fungsi
yang berhubungan atau memiliki keterkaitan
-
Gunakan peraturan pemformatan
secara keseluruhan.
-
Putuskan secara sadar apa yang
harus disembunyikan di object. Itu tergantung pada perubahan apa yang
diharapkan.
-
Sebaiknya, panggil method dari
class yang telah dibuat, dari objek yang telah dibuat, dari parameter, dan dari
variabel, bukan Bukan metode lebih lanjut yang dapat dicapai melalui
object (Law of Demeter).
-
Error handling itu penting dan
terkadang banyak, namun jangan sampai mengilangkan niat dari kode tersebut,
gunakan blok exception atau try-catch seperti catatan
-
Exception harus mengandung maksud
secara detail, konteks, dan tipe errornya
-
Jaga batas bersih antara kode yang
berasal dari tim yang berbeda.
-
Tes otomatis harus mencakup setiap
detail fungsionalitas kode, harus menyertai kode di arsip, dan mudah
dijalankan.
-
F.I.R.S.T. rule: testing harus
fast, independent, repeatable, selfvalidating, and timely
-
Urutan : Konstanta, sebelum
variabel, sebelum method
-
jaga variabel dan metode tetap
private kecuali yang menghalangi testing; lalu gunakan proteksi atau paket.
-
Class yang lebih kecil akan
meningkatkan pemahaman bagi yang membacanya. Akan ada banyak class, namun
tujuan mereka akan lebih jelas.
-
Memisahkan kelas juga cenderung
mendukung Open-Closed Principle (OCP) untuk menghindari memodifikasi kelas yang
ada saat memperluas fungsionalitas program.
-
Dependency Inversion Principle
(DIP) modul tingkat tinggi tidak boleh bergantung pada modul tingkat rendah;
keduanya harus bergantung pada abstraksi. Abstraksi seharusnya tidak tergantung
pada rinciannya. Rincian harus bergantung pada abstraksi.
-
domain-specific language - DSLs
membantu menjaga logika aplikasi ringkas, mudah dibaca, dapat dimodifikasi, dan
free-technology
-
Full decoupling akan memungkinkan
perubahan arsitektural dengan mudah. Ini juga menyederhanakan keputusan
desentralisasi atau penundaan
-
Desain yang bagus bisa dihasilkan
dengan membiarkannya muncul dari penggunaan empat aturan Simple Design Kent
Becks yaitu
-
Lakukan semua testing, dan
berhasil
-
Tidak mengandung duplikasi
-
mengungkapkan maksud dari
programmer
-
meminimalkan jumlah class dan
method
-
Ketahui library : thread-safe vs. nonthread-safe, blocking vs.
non-blocking, executor framework, synchronization helpers.
-
Ketahui konsep basic : bound
resources, mutual exclusion, starvation, deadlock, livelock.
-
Tahu model pemrograman dasar :
producer-consumer, reader-writer, dining philosophers situations.
Comments
Post a Comment