Saya baru-baru ini menulis tentang Lima Buku yang Mengubah Gaya Pemrograman Saya . Dalam komentarnya, beberapa pembaca merekomendasikan "Kode Bersih" oleh Robert S. Martin. Hasilnya, saya membaca buku itu dan menganggapnya layak untuk ditinjau secara mendalam.

Tentang buku itu
« » 2008 , Amazon. , « », Agile Manifesto . 4,4 Goodreads 13 000 . , , .
.
1. —
, — . , ( ) .
Sebaliknya, kita akan mulai dengan sketsa, secara bertahap menambahkan detail. Kami merevisi, menyempurnakan, dan memperluas - kami bekerja pada tingkat abstraksi yang berbeda hingga perangkat lunak berfungsi sesuai kebutuhan. Perangkat lunak tidak pernah benar-benar selesai.
Ini adalah esensi utama dari "Kode Bersih". Sepanjang buku, penulis mengejar gagasan bahwa perangkat lunak adalah seni dan mirip dengan lukisan.

Tetapi bagaimana Anda beralih dari menulis kode sederhana ke seni pemrograman?
Menurut Martin, alat utama yang kami miliki adalah continuous refactoring dan test-driven development (TDD). Mereka tidak dapat dipisahkan satu sama lain, seperti dua sisi mata uang. Berikut beberapa definisi.
— .
— , , .
, .
- . , .
- , . .
- . .
« , « ». , «», , . ».
, , , , — , , .
2. !
« — . , ».
.
, .
- — 20 10 .
- , .
. , .
. . (SRP).
— « » , . , , , .
3.
« ».
.
, , , . :

:

:
- .
- .
- , .
- , .
.
- Gunakan nama yang mengungkapkan maksud - misalnya, int elapsedTimeInDays, bukan int hari ...
- Gunakan nama yang dapat diucapkan - misalnya Pelanggan, bukan DtaRcrd102
- Hindari pengkodean - jangan gunakan awalan m_ dan jangan gunakan notasi Hongaria .
- Pilih satu kata untuk setiap konsep - jangan gunakan nama yang berbeda seperti ambil, ambil, dapatkan untuk operasi yang sama pada dasarnya.
4. Abstraksi itu penting

Menurut Clean Code, jika kita ingin memastikan bahwa fungsi kita hanya menjalankan satu tugas, kita perlu memastikan bahwa semua perintah di setiap fungsi berada pada tingkat abstraksi yang sama.
Martin mengilustrasikan ini dengan contoh berikut dari FitNesse :

. — hr , — . , , :

:
- render () hr.
- HtmlTag.
- .
:
« ».
.
5. —
, , , , . , .
, , , , . « », , « , ».
« . , . , ».
.
, , , . , , — . , — .
« » , . , , — , .
, , . , , 13 , . , , , « », 2021 . , .