Saya hanya menulis pernyataan if dengan nama properti yang cukup panjang dan menemukan masalah ini.
Katakanlah kita memiliki pernyataan if seperti ini:
if(_someViewModelNameThatIsLong.AnotherPropertyINeedToCheck == someValue &&
!_someViewModelNameThatIsLong.ThisIsABooleanPropertyThatIsImportant)
{
//Do something
}
Properti kedua adalah tipe boolean dan tidak masuk akal untuk memiliki stetement seperti
if(boleanValue == true)
Apakah ada cara yang lebih baik untuk menekankan negasi kemudian meletakkannya !
di depan. Bagi saya sepertinya ini dapat dengan mudah diawasi ketika membaca kode dan berpotensi menyebabkan masalah dengan debug
readability
Ivan Crojach Karačić
sumber
sumber
_someViewModelNameThatIsLong
if( ! something)
vsif(!something)
... && model.Prop == false)
? Secara pribadi saya sangat jarang menggunakan!
, terlalu mudah untuk diabaikan.Jawaban:
Dan kemudian, dalam objek model tampilan
(dengan asumsi someValue adalah string dan tidak dikenal oleh objek model)
Ini tidak hanya menekankan! operator, tetapi membuatnya lebih mudah dibaca secara umum. Sekarang, dalam metode pemanggilan, saya dapat melihat satu kondisi, yang seharusnya dinamai dengan baik untuk menggambarkan kondisi dalam konteks objek pemanggilan. Dan dalam objek model, saya bisa melihat apa artinya itu dalam konteks objek model.
sumber
someValue
mungkin perlu menjadi parameter untukNeedsMeToDoSomething
metode ini, tergantung pada situasi Anda.Letakkan di blok if sendiri sebelum mengevaluasi kondisi yang kurang penting. Tidak hanya akan lebih mudah untuk membaca tanpa kekacauan dari kondisi lain, tetapi juga kondisi pertama yang akan dibaca oleh seorang programmer. Gabungkan ini dengan ide yang telah disebutkan oleh @scrwtp untuk menetapkan ke variabel dengan nama yang bermakna dan Anda mendapatkan:
Jika Anda memprogram dalam bahasa kompiler, sering kali blok-blok ini bersarang jika digabungkan pada akhirnya, asalkan Anda tidak memasukkan kode antara outer if dan inner if, jadi itu seharusnya tidak mempengaruhi kinerja di dalamnya kasus.
sumber
Jika Anda menggunakan C / C ++ maka preprocessor dapat memberikan keterbacaan.
sumber
Saya baru saja mengekstrak
Dalam Metode yang mengembalikan ini. Jika Anda memberi nama metode ini NotThisIsABooleanPropertyThatIsImportant Anda harus baik-baik saja.
sumber