エンジニアのひよこ_level10

毎日更新してた人。たまに記事書きます。

読みやすいプログラムを書くために。否定の変数名の言い換え【637日目】

学んだこと

その後のコードで反転する目的で、 $is_xxx $has_xxxを変数をつけるなら、$is_not_ $has_notを変数名をつけるのも手

is_not_xxx は、(is not)xxxか、is(not_xxx)とどちらで解釈するか迷うので、最善手とは限らない

xxx_items_are_emptyなど、反対の意味の単語を使うことも出来るが、主語を間違えると意味を間違えやすい

変数に逆の意味をつけたい

$has_user_item = !($items->where('item_type', 'user')->empty());

if (!$has_user_item) {

userのものを持っていない。それを反転すれば持っているって値になる。
でも、否定の否定が入って、式が見にくい・・・?

noやnotで反転させる

$has_no_user_item = $items->where('item_type', 'user')->empty();

変数名にnotやnoを入れる。
とはいえ、変数名にnotとか入れるとますます混乱しかねないので、
コード全体が否定の意味を求めているとき以外は使わないほうが良さそう。

逆の意味を示す単語を使う

$user_item_is_empty = $items->where('item_type', 'user')->empty();

存在していない、という単語を使いたければ、空であるという言い方をする。

否定の意味を含んだ単語を使うことで、文自体を肯定文にする。

とはいえ、主語が難しくなるので注意しましょうφ(・