はじめに
昨日に続き、今日も学習時間がほとんど取れなかった。
他の予定があったとはいえ、時間を確保しようと思えばできたはずで、そこは自分に甘えがあったと感じる。
とはいえ、「何かひとつでも学んで1日を終える」というスタンスを大切にしたい。
今日は、リーダブルコードの第8章の冒頭だけを読み、その中で得た学びを整理してみる。
要約変数とは?
第8章の鍵となる考え方は、
「巨大な式は飲み込みやすい大きさに分割する」
というものだった。
ただし、巨大な式でなくとも「要約」のために変数を使うというアプローチが紹介されており、非常に参考になった。
具体例
たとえば、以下のようなコードがあるとする。
if (request.user.id == document.owner_id) {
// ユーザーはこの文書を編集できる
}
この式はそれほど長くはないが、「request」「user」「id」「document」「owner_id」といった5つの要素が関係しており、少しだけ読むのに時間がかかる。
ここで、「要約変数」を使って次のように書き換える。
final boolean user_owns_document = (request.user.id == document.owner_id);
if (user_owns_document) {
// ユーザーはこの文書を編集できる
}
このように変数に意味を持たせることで、条件の意図がより明確になる。
おわりに
今回学んだ「要約変数」という考え方は、今まであまり意識したことがなかった。
短い式でも、他人が読みやすくなるような変数名を使って要約することで、コードの可読性が上がることを実感できた。
今後、自分のコードでも積極的に取り入れていきたい。