Haruskah metode boolean selalu mengambil bentuk afirmatif, bahkan ketika mereka hanya akan digunakan dalam bentuk negatif?
Katakanlah saya ingin memeriksa apakah suatu entitas ada sebelum membuat entitas, argumen saya adalah bahwa bentuk pertama di bawah ini lebih baik daripada bentuk kedua, apakah metode tersebut pernah digunakan dalam bentuk afirmatif atau tidak.
Singkatnya, saya menemukan if(!affirmative)
lebih mudah dibaca daripada if(negative)
. Saya punya rekan yang tidak setuju, pikir?
Bentuk pertama:
int entity_id = 42;
if(!entity_exists(entity_id)) create_entity(entity_id);
Bentuk kedua:
int entity_id = 42;
if(entity_not_exist(entity_id)) create_entity(entity_id);
!
karakter berkali-kali menyebabkan saya salah mengerti kode sampai saya membacanya lagi. Jadi saya mungkin lebih setuju dengan rekan kerja Anda. Saya suka formulir yang bernilai true saat Anda memeriksanya.
if (!exists) create()
dapat dilihat sebagai praktik buruk dalam banyak bahasa / kerangka kerja, karena cenderung tidak aman. Biasanya, pendekatan yang disukai adalah memanggil create()
dan menangani pengecualian khusus atau mengembalikan kode yang mengatakan bahwa entitas sudah ada. Ini tentu saja bukan jawaban untuk pertanyaan yang sebenarnya (itulah sebabnya ini hanya komentar).
if (not entity_exists(entity_id))