Saya telah diberi banyak pemikiran untuk masalah ini baru-baru ini - jawabannya yang sederhana adalah baca Don Donan's The Design of Everyday Things; Tulis kode seperti Anda akan merancang suatu produk.
Untuk parafrase, desain yang baik meminimalkan kesalahan. Itu berarti, beberapa hal, sebagian besar sudah Anda lakukan (walaupun Anda mungkin tidak tahu persis mengapa ).
Fungsi -Nama secara intuitif. Ini secara resmi dikenal sebagai keterjangkauan. Artinya, sebuah tombol memungkinkan untuk ditekan, tuas memungkinkan untuk diaktifkan, pegangan untuk ditarik, dll.
-Membuat sulit untuk menulis kode yang buruk. Periksa input buruk dan lontarkan kesalahan lebih cepat daripada nanti, gunakan aplikasi hungarian bila perlu, dll. Ini disebut fungsi lockout.
-Gunakan abstraksi jika perlu. Memori jangka pendek lemah.
-Dokumentasi jelas penting, tetapi ini adalah yang paling tidak efektif untuk memastikan kode digunakan dengan benar. Singkatnya, produk yang dirancang dengan baik tidak memerlukan dokumentasi apa pun. (Cara paling jelas untuk melihat ini adalah dengan melihat contoh-contoh buruk: yaitu, pintu dengan pegangan yang seharusnya Anda dorong.)
Tes -Unit. Ini tidak benar-benar mencegah kesalahan, seperti memperjelas di mana bug berada, dan memberikan kewarasan.
Saya yakin saya kehilangan banyak prinsip lagi, tetapi intinya adalah, bacalah tentang merancang kesalahan.