エンジニアのひよこ_level10

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

読みやすいプログラムを書くために。判定用の数値は判定の時に算出する【640日目】

学んだこと

$has_という変数名をつけず、データの取得と、countなどの判定とで処理を二段階に分けるのも手

has_xxxのような変数を作っていた

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

if (!$has_user_item) {

このように、if文内で変数一つで扱えるよう、判定用の変数を用意していた。

判定用の数値は判定の時に算出する

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

// 判定用の数値に変える
if (!($user_item->empty())) {

}

このように書くことも出来る。ただ、一長一短ある。

どちらがより再利用されるプログラムか。

注)これに正解はなく、ケースバイケースです。

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

if (!$has_user_item) {
     xxx_func($has_user_item);
}

このように、判定結果を引数等で他の場面で使いたい場合もあるかもしれない。先程のように分割すると

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

// 判定用の数値に変える
if (!($user_item->empty())) {
     xxx_func($user_item->empty());
}

こんなコードになったりするので、一気にまた見にくくなり、メンテナンスも面倒。なのでケースバイケース。

おまけ

ちなみに、メモリにどれくらい使うか・・・みたいな話があるが、それは考えるべきプログラムなのか?私達はそこまで切り詰めたサーバーなのか?って考えると、
一旦考えなくても良い現場が多いだろう。