Ia bergantung pada jangka hayat kod dan radius letupannya. Clean code memberi pulangan yang besar untuk kod yang hidup dan berubah; "cukup baik" pula merupakan pilihan yang betul untuk kod buangan, prototaip, atau kod yang jarang disentuh. Kemahirannya ialah memadankan pelaburan anda dengan keadaan — mengelakkan kedua-dua kecuaian dan gold-plating.
Prinsip: padankan usaha dengan jangka hayat kod
Kualiti kod ialah satu pelaburan, dan seperti mana-mana pelaburan, pulangannya bergantung pada masa dan pendedahan. Dua soalan yang perlu ditanya:
- Berapa lama kod ini akan hidup? Kod yang dibaca dan diubah selama bertahun-tahun layak mendapat kejelasan; skrip sekali guna tidak.
- Apakah radius letupannya? Modul teras yang disentuh oleh ramai orang dan bergantung pada laluan kritikal memerlukan perhatian; sudut terpencil yang jarang berubah tidak.
Bila clean code jelas menang
- Kod yang kerap berubah — kejelasan dibayar balik setiap kali seseorang membacanya atau menyuntingnya.
- Kod yang dikongsi, berpusat, atau berjangka hayat panjang — kos kekeliruan berganda merentasi orang dan masa.
- Apa-apa sahaja di mana pepijat itu mahal — pembayaran, auth, integriti data.
Bila "cukup baik" merupakan pilihan yang betul
- Kod buangan — spike, eksperimen, migrasi sekali sahaja, skrip yang akan anda padam esok.
- Prototaip yang bertujuan mengesahkan idea, bukan untuk bertahan.
- Kod yang jarang disentuh dan berisiko rendah di mana menggilapnya membeli sedikit sahaja faedah.
Dua mod kegagalan
| Kegagalan | Kelihatan seperti | Kos |
|---|---|---|
| Kecuaian | menghantar kekacauan ke dalam kod yang akan hidup | perubahan masa depan yang lambat, pepijat, hakisan |
| Gold-plating | over-engineering kod yang tidak penting | masa terbuang, abstraksi pramatang |
Kedua-duanya merupakan pembaziran sebenar. "Cukup baik" ialah pilihan yang disengajakan dan kontekstual — bukan alasan untuk kecuaian, dan bukan lesen untuk menggilap selama-lamanya.
Mengapa ia penting
Soalan ini membezakan jurutera yang menggunakan kualiti secara dogmatik daripada mereka yang menggunakannya secara ekonomik. Menganggap clean code sebagai agama membazirkan usaha pada kod buangan; menganggapnya sebagai pilihan akan mereputkan sistem yang anda bergantung kepadanya. Pertimbangan senior ialah mengetahui jenis kod yang anda pegang dan melabur dengan sewajarnya — dan keupayaan untuk menerangkan tradeoff itu ialah jenis pemikiran pragmatik yang ingin dilihat oleh pasukan.
