Kode kesalahan dan hukum terkecil takjub

Apakah Anda tahu hukum paling tidak heran? Saya tidak yakin asalnya, tetapi saya pertama kali mempelajarinya dari “Tao pemrograman” yang luar biasa. Sederhananya, itu adalah prinsip bahwa perangkat lunak harus selalu menanggapi pengguna dengan cara yang paling tidak heran. Dengan kata lain, mencetak kertas seharusnya tidak menghapusnya dari sistem file Anda.

Mengikuti hukum yang paling tidak heran, apa yang harus dilakukan oleh suatu program ketika melakukan kesalahan sulit? Anda mungkin mengatakan bahwa itu harus memberi tahu pengguna. Sayangnya, banyak sistem hanya menyikatnya di bawah permadani akhir-akhir ini.

Saya pikir itu dimulai dengan Windows. Atau mungkin mac. Berpikir itu melanjutkan bahwa pengguna akhir terlalu konyol atau terlalu takut dengan kode kesalahan atau pesan mendalam sehingga kami hanya meninggalkannya. Contohnya: iPhone istri saya tidak akan mempublikasikan gambar. Saya tidak ahli mengingat saya membawa perangkat Android, tetapi saya setuju untuk melihatnya. Apa pun yang saya coba, saya mendapat pesan yang sama tidak berguna: “Tidak dapat mempublikasikan foto yang ideal sekarang. Silakan coba lagi nanti. ” Tidak hanya ini tidak terlalu informatif, tetapi juga menyiratkan masalahnya adalah dalam sesuatu yang mungkin memperbaiki dirinya sendiri kemudian seperti jaringan.

Pelakunya yang sebenarnya? Ketentuan layanan iCloud telah berubah dan dia belum menerima kontrak baru. Saya merasa itu mungkin muncul memintanya untuk melakukan itu di beberapa titik, tetapi untuk alasan apa pun dia melewatkannya. Sampai Anda menggali pengaturan dan memeriksa kotak untuk menyetujui persyaratan itu, “nanti” tidak akan pernah terjadi.

Tapi itu bukan hanya iPhone. Windows penuh dengan hal-hal seperti itu dan Anda hanya berharap akan ada login pelanggan dengan lebih detail. Saya juga melihat lebih banyak lagi sekarang di Linux, meskipun biasanya ada file log di suatu tempat jika Anda tahu cara menemukannya. Sementara saya mendapatkannya bahwa program memiliki kesalahan menjalankan risiko mencengangkan pengguna, bahkan lebih menakjubkan jika tidak ada penjelasan tentang apa yang salah. Bayangkan jika bank Anda mengirimi Anda catatan: Ada masalah dengan akun Anda. Jadi Anda merespons: “Apakah saya terlalu banyak?” Mereka menjawab, “Tidak.” sekarang apa? Itulah keadaan banyak kesalahan perangkat lunak saat ini.

Benar-benar tidak ada alasan pada sistem desktop atau situs web. Namun, Anda mungkin ingin memaafkan sistem embedded kecil. Jangan! Saya baru-baru ini porting firmware printer 3D Marlin ke papan anet A8 – prosesor 8-bit dengan sedikit memori – yang telah menggunakan firmware pengulang selama bertahun-tahun. Pertama kali saya mencoba melakukan probe autolevel saya mendapat pesan: Probing gagal. Itu dia.

Saya akan memberi Anda, bahwa Anda dapat mengaktifkan debugging autolevel untuk mendapatkan lebih banyak informasi, tetapi saya sudah berada pada pemanfaatan flash 98%, sehingga akan memerlukan sementara melepas banyak fitur dan membangun kembali kode. Tapi mengapa tidak seperti yang akan kita lakukan di masa lalu:

Unit Global_Error = 0;
void do_something (void) {
global_error = 1;
Jika (proses1 () == gagal) kembali;
Global_Error ++;
Jika (proses2 () == gagal) kembali;
. . .

global_error = 0;
kembali;
}
Ini tidak memakan banyak ruang. Sekarang Anda dapat melaporkan sesuatu seperti probing gagal (8) dan setidaknya saya dapat pergi ke kode dan mencari tahu apa langkah ke-8 itu gagal. Saya yakin seseorang bahkan akan memposting daftar kode dan apa yang mereka tunjukkan dalam kasus seperti itu.

Terlalu banyak overhead? katakan padaku penghitung program di mana kesalahan terjadi. Yang dulunya merupakan praktik yang cukup umum. Memang, itu mengharuskan Anda untuk memiliki file peta memori dan tahu cara membacanya tetapi masih lebih baik daripada tidak sama sekali.

Kami menghabiskan banyak waktu berpikir tentang bagaimana proyek dan perangkat lunak harus bekerja. Tetapi kita perlu menghabiskan waktu berpikir juga, tentang apa yang terjadi ketika mereka tidak bekerja. Tidak masalah bahwa kita dapat melakukan debugging in-sirkuit atau menghubungkan penganalisa logika, tetapi itu tidak akan membantu pengguna kami. Bahkan jika itu hanya untuk Anda, mengapa tidak membuatnya sedikit lebih mudah pada diri sendiri?

Seperti yang telah kita katakan sebelumnya, “Tidak ada yang namanya terlalu banyak informasi.” Selain menjaga terhadap kesalahan sistem, Anda juga dapat membantu pengguna untuk tidak mengherankan diri mereka sendiri.

Kredit Gambar: [Elisa Ventur] dengan menggunakan Unsplash.com

Leave a Reply