Halo, Habr!
Saya membawa perhatian Anda pada terjemahan dari artikel “
Terlalu Bersih? ” Oleh Robert C. Martin (Paman Bob).

Saya baru saja menonton ceramah oleh
Sarah May : A
Viable Code . Itu sangat bagus. Saya sepenuhnya setuju dengan poin utama pidatonya. Di sisi lain, topik pidatonya adalah bahwa saya belum mempertimbangkan dengan baik sebelumnya.
Tapi sebelum saya sampai di sini, saya punya nitpicking. Pada titik tertentu dalam pidatonya, dia mengkritik gerakan tuan karena terlalu fokus pada perilaku individu daripada tim. Sayangnya, ini adalah karakteristik yang salah dari gerakan kerajinan, yang selalu difokuskan pada penciptaan tim profesional dan etis.
Dalam hal ini, gagasan bahwa sistem perangkat lunak harus "layak huni" adalah wawasan yang menarik. Menurut May, untuk menjadi "layak huni," organisasi sistem perangkat lunak harus berada di antara ekstrem kekacauan yang membingungkan dari toko kode dan kemurnian antiseptik yang diamati pada halaman majalah interior dan brosur penjualan rumah.
Ini bukan apa yang saya pertimbangkan atau ungkapkan sebelumnya; meskipun itu selalu apa yang saya praktekkan dengan malu-malu.
Apakah sistemnya terlalu bersih? Apakah mungkin untuk berfokus pada kebersihan sehingga tidak ada yang bisa bekerja dalam sistem?
Ini foto kantor saya hari ini. Apa yang kamu lihat

Itu relatif bersih. Ini adalah organisasi yang jelas. Anda dapat melihat tempat kerja saya, dengan laptop dan dua layar di tengah. Anda juga dapat melihat stasiun simulasi penerbangan saya di sebelah kanan. Ada keranjang, kotak, dan semua atribut organisasi yang biasa.
Tetapi ada juga sedikit kekacauan di sekitar. Di sebelah printer, terletak di sudut paling kiri, adalah BUG-A-SALT, siap untuk menangani lalat penyerang. Di sebelah kanan, di atas Tardis, mengintip melalui layar paling kanan, adalah gulungan kertas toilet. Seandainya saya menumpahkan kopi atau ingin bersin. Bisakah Anda menemukan pemintal? Lihat, banyak alat menggambar di sebelah kiri? Bagaimana dengan semua stiker, foto, dan ... Dan bagaimana dengan dunia di dalam semua lubang di lemari ini?
Kebersihan dan organisasi kantor membuatnya dapat digunakan. Saya tahu di mana semua hal berada. Dan saya tahu cara mengaksesnya. Elemen yang tidak terkait tidak saling mengganggu. Tidak ada dependensi yang tidak perlu.
Sedikit kekacauan di kantor sangat membantu. Gangguan ini disebabkan oleh masalah sementara. Lalat, kopi, bersin, coretan, momen idle, mengubah prioritas pekerjaan, dan hanya tempat-tempat umum untuk meletakkan hal-hal yang saya tidak tahu harus berbuat apa. Tanpa kekacauan ini, akan lebih sulit bagi saya untuk menggunakan tempat kerja. Dan penggunaan kantor berikutnya lagi akan menyebabkan kekacauan!
Jadi jelas saya membiarkan sedikit kekacauan masuk ke kantor saya. Kebingungan ini memecahkan masalah sementara. Tetapi juga jelas bahwa saya berjuang untuk menjaga kekacauan ini di bawah kendali. Saya berjuang untuk kebersihan kantor. Dan itu tidak mudah!
Apakah aturan ini berlaku untuk kode? Ini benar sekali! Ketika saya menulis kode, saya mencoba yang terbaik untuk menjaganya tetap bersih. Tetapi ada juga tempat-tempat kecil di mana saya melanggar aturan justru karena pelanggaran ini memungkinkan untuk menyelesaikan masalah sementara.
Sebagai contoh, saya berusaha sangat keras untuk memisahkan presenter dari pandangan. Kode yang menempatkan data dalam bentuk yang layak tidak boleh di sebelah kode yang menampilkan data ini di layar. Di sisi lain, ketika Anda mencoba membuat layar terlihat dan berfungsi dengan baik, sangat sulit untuk beralih di antara dua file yang berbeda. Terkadang masuk akal untuk menggabungkan kode lagi, dapatkan semua yang bekerja sesuka Anda, dan kemudian pisahkan kode kembali. Teknik ini dikenal sebagai "Better Worse."
Bagaimanapun, saya pikir masuk akal bahwa kode harus ditinggali. Kita seharusnya tidak malu jika kode kita terlihat agak padat. Di sisi lain, kita harus dengan hati-hati memantau diri kita sendiri dan mencegah gangguan dari spiral di luar kendali.