Naming Things #2: Boolean Method Should Ask A Question

Bayu Hendra Winata
Javan Cipta Solusi
Published in
1 min readFeb 16, 2019

Di tulisan sebelumnya, saya sudah membahas tentang pentingnya menghindari prefiks atau sufiks pada penamaan method.

Namun, ada beberapa kasus dimana prefiks menjadi sangat bermanfaat ketika membaca kode, salah satunya adalah ketika membuat method yang mengembalikan boolean (true atau false).

Memberi nama method seperti ini, umumnya lebih mudah dipahami jika diawali dengan is, has, atau can.

$user->hasPost(); // vs $user->posts()->count() > 0
$post->isPublished(); // vs $post->status === 'PUBLISHED'

Sebagian besar built-in function di PHP atau Laravel juga menerapkan penamaan seperti ini.

Tidak selalu harus diawali is/has/can. Ada beberapa kata yang tanpa diawali is/has/can pun sudah menunjukkan pertanyaan. Intinya untuk method yang mengembalikan boolean, jika dibaca bisa menjadi kalimat pertanyaan. Jika kita menambahkan tanda tanya (“?”) di belakang nama method, maka masih masuk akal untuk diucapkan. Method seperti ini akan meningkatkan readability, terutama karena boolean method akan sering dipakai dalam percabangan.

// Is $user member of $project?
if ($user->isMemberOf($project)) {

}
...// Is post tags contains 'Laravel'?
if ($post->tags()->contains('Laravel') {

}
...if ($post->exists()) {

}

--

--