Saya sedang membaca Clean Code oleh Robert C. Martin, dan frasa tersebut secara TILT
tak terduga muncul di beberapa contoh kode. Contoh (ada di Jawa, omong-omong):
...
public String errorMessage() {
switch (status) {
case ErrorCode.OK:
// TILT - Should not get here.
return "";
case ErrorCode.UNEXPECTED_ARGUMENT:
return "Unexpected argument";
case ErrorCode.MISSING_ARGUMENT:
return "Missing argument";
...
}
...
Dari konteksnya, saya menebak TILT
menunjuk keadaan yang tidak dapat dijangkau dan hanya dimasukkan untuk memenuhi kompiler (misalnya, dalam kode di atas, TILT
muncul dalam ErrorCode.OK
kasus karena seharusnya tidak ada pesan kesalahan jika keadaan itu OK
), tetapi Saya tidak yakin.
Apakah ada yang tahu apa TILT
artinya / artinya?
java
clean-code
comments
conventions
Kyle Lin
sumber
sumber
Jawaban:
Mesin pinball fisik memiliki sensor di dalamnya yang mendeteksi ketika sesuatu di luar berusaha mengerahkan terlalu banyak pengaruh lintasan bola dengan mendorong atau memiringkan mesin. (Saya mengatakan terlalu banyak di sini karena pinball memiliki tradisi panjang tentang sejumlah gerakan yang dapat diterima, terutama ketika bola digantung pada sesuatu.) Ketika mesin masuk ke keadaan miring, apa pun yang bisa mencetak pemain lebih banyak poin adalah dinonaktifkan sampai bola jatuh dari bagian bawah tabel. Ini biasanya disertai dengan lampu "Tilt" pada gim dan terkadang bel peringatan. Anggap saja setara dengan pinball untuk menaikkan pengecualian.
Metafora Martin tegang karena
ErrorCode.OK
, mungkin, validstatus
dan bukan sesuatu yang mencoba memaksa fungsi melakukan sesuatu yang seharusnya tidak. Dengan kata lain, input itu tidak mencoba untuk mendapatkan fungsi untuk mengembalikan pesan kesalahan untuk argumen yang hilang.Sisa dari ini tidak menjawab pertanyaan Anda, tetapi mungkin memberi Anda alasan untuk membaca sisa buku dengan mata kritis. Saya tidak memiliki akses ke buku untuk melihat apakah teks di sekitar contoh itu melambaikan tangan, tetapi jika tidak, metode ini melakukan hal-hal yang tidak sesuai dengan judul:
Pertama adalah bahwa ia tidak memperlakukan input atau status yang dianggap tidak valid sebagai kondisi yang luar biasa dan mengeluh tentang hal itu. Jika dokumentasi metode mengatakan itu hanya boleh dipanggil ketika objek
status
dalam keadaan kesalahan, itu jelas masalah logika dalam kode panggilan yang perlu diperbaiki.Yang kedua adalah mengembalikan string yang sama validnya dengan yang lain tetapi secara efektif berfungsi sebagai konstanta ajaib. Penelepon yang ingin tahu apakah menggunakan metode ini adalah suatu kesalahan harus memeriksa isi nilai kembali atau dengan cerdik meneruskannya kepada manusia untuk membacanya (mis.,
Operation result:
Tanpa informasi tambahan).Yang ketiga opsional adalah bahwa jika kompilator mengharapkan cakupan penuh dari nilai-nilai yang disebutkan, menggunakan
default
untuk menangkap kasus-kasus yang tidak tercakup jauh lebih mudah dibaca daripada harus menghitungnya secara individu atau dalam kelompok. (Sisi filpnya adalah bahwa mungkin lebih baik membiarkan kompiler mengeluh sehingga menambahkan status kedua yang bukan kesalahan akan memaksa programmer untuk secara eksplisit menyatakan bagaimana penanganannya.)sumber