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

Popular posts from this blog

Cara Memasang GLUT di Dev-C++

ALGORITMA DDA, BRESENHAM, DAN MID-POINT GARIS

ALGORITMA MID-POINT DAN BRESENHAM LINGKARAN SERTA PERBEDAANNYA