Setiap jawaban langsung akan menjadi ekstrem. Jelas ada kasus di mana tenggat waktu sangat ketat sehingga Anda harus menggunakan kode jelek, dan ada kasus di mana kode begitu jelek sehingga perlu melewati tenggat waktu untuk memperbaikinya. Yang Anda butuhkan adalah metode untuk menilai di mana Anda berada, dan mungkin metode untuk menetapkan tenggat waktu realistis yang memungkinkan waktu untuk menulis kode yang lebih baik.
Jangan simpan pembersihan untuk nanti. Kecuali jika Anda biasanya memiliki periode tanpa melakukan apa pun selain refactor, tidak ada "nanti" di mana ia akan menjadi prioritas lebih tinggi untuk merapikan kode daripada sekarang. Rutinnya adalah "merah, hijau, refactor", bukan "merah, hijau, lakukan sesuatu yang sama sekali berbeda selama dua minggu, refactor". Secara realistis Anda tidak akan mengubah kode sampai waktu berikutnya Anda mengunjungi lagi karena alasan lain, dan Anda mungkin akan berada pada tenggat waktu juga. Opsi nyata Anda adalah memperbaikinya sekarang atau meninggalkannya.
Tentu saja kode yang ditata dengan baik lebih baik daripada kode yang buruk, dengan asumsi Anda berencana untuk membacanya lagi. Jika Anda berencana untuk tidak membacanya lagi, maka jangan merapikannya . Kirimkan hal pertama yang lolos tes. Tapi itu skenario yang cukup langka, bagi kebanyakan programmer itu terjadi kira-kira tidak pernah. Mengabaikan kasus itu, hanya Anda yang memiliki perincian dari kasus Anda yang sebenarnya untuk membuat keputusan berapa biaya untuk memperbaiki vs berapa biayanya (dalam peningkatan pemeliharaan di masa mendatang) untuk tidak memperbaikinya.
Ada hal-hal tertentu yang tidak sulit untuk diperbaiki pada titik di mana kode membutuhkan pemeliharaan, daripada yang harus diperbaiki sekarang. Ini sebenarnya tidak menguntungkan Anda banyak untuk diperbaiki sekarang. Yang paling jelas adalah sepele untuk memperbaiki (kesalahan spasi dan sejenisnya) dan jadi sulit untuk membayangkan bahwa Anda punya waktu untuk mengajukan pertanyaan ini tetapi tidak untuk memperbaikinya ;-) Untuk itu yang tidak sepele dan dari jenis ini maka OK , Anda memiliki beberapa kode yang tidak ideal tetapi Anda harus pragmatis. Ini bekerja dan Anda berada di tenggat waktu. Gunakan.
Ada hal-hal tertentu yang jauh lebih mudah diperbaiki sekarang daripada nanti ketika (a) mereka tidak begitu segar dalam pikiran setiap orang; (B) hal-hal lain telah ditulis yang bergantung pada mereka atau meniru mereka. Ini jauh lebih berharga untuk diperbaiki sekarang, jadi prioritaskan. Jika Anda tidak punya waktu dalam tenggat waktu untuk memperbaikinya, maka Anda harus mendorong sekuat mungkin untuk tenggat waktu yang lebih lama, karena Anda menumpuk utang dalam basis kode Anda sehingga Anda mungkin harus membayar lain kali saat Anda mengunjungi Kode.
Metode perbaikan kode yang disukai adalah melalui proses peninjauan. Komentari masalah yang Anda miliki dengan itu, dan kirim kembali ke junior untuk berubah . Anda dapat memberikan contoh tentang apa yang Anda maksud dan meninggalkan junior untuk menemukan semua kasus dalam kode yang mereka terapkan, tetapi jangan hanya menyelesaikan kode mereka untuk mereka. Jika Anda melakukannya maka Anda memberi mereka tidak ada sarana untuk meningkatkan.
Anda harus menulis masalah umum menjadi panduan gaya yang mengatakan "jangan lakukan ini, lakukan ini sebagai gantinya", dan menjelaskan alasannya. Pada akhirnya alasannya adalah, "untuk membuat kode kita konsisten secara estetika", tetapi jika Anda tidak siap untuk menuliskan aturan Anda dengan beberapa pembenaran maka Anda mungkin juga tidak harus menegakkannya. Biarkan setiap programmer bebas memilih.
Akhirnya, waspadai kecenderungan untuk mengubah hal-hal tanpa batas. Pengembalian berkurang, dan Anda perlu belajar melalui pengalaman di mana mereka masih baik. Sangat penting bagi Anda untuk membentuk ide realistis tentang apa yang cukup baik, atau Anda tidak dapat melakukan negosiasi di mana Anda memastikan bahwa tenggat waktu Anda memberi Anda waktu untuk membuat kode "cukup baik". Luangkan waktu Anda untuk hal-hal yang tidak cukup baik.