LoginSignup
0
0

リーダブルコード 第3章 誤解されない名前 まとめ

Posted at

誤解を生ませないようにするために

名前を付けた時、名前が「他の意味と間違えられることはないだろうか」と何度も自問自答する
→初めてコードを見る人に誤解を生まなせないようにするため

例1)
データベースの問い合わせ結果を処理する、以下のコードがあるとする
results = Database.all_objects.filter("year <= 2011)
filterメソッドによってyearが2011以下のオブジェクトを取り出す処理に見えそうだが、
a. yearが2011以下のオブジェクト
なのか
b. yearが2011以下ではないオブジェクト
なのかが明確でない
そのため、

  • a. であれば、「yearが2011以下のオブジェクトを選択する」という意味で、
    filterselect
  • b. であれば、「yearが2011以下のオブジェクトを除外する」という意味で、
    filterexclude
    変更する

例2)
textに書かれている最後の内容を切り落として「...」をつける関数があったとする

def Clip(text, length):
  ...
  1. Clipメソッドの動作が、「最大length文字まで切り取る」場合、
    「(新聞・雑誌などから)切り抜く」「(画像を)切り抜く[取る]」という意味を持つ
    Clipという単語ではなく、
    「文・説明などを切りつめる(切り取って短くする)」という意味の
    Truncateを用いた方が読み手に疑問を持ちづらくなる
  2. 「最大length文字まで切り取る」という動作のため、
    lengthを「最大length文字」というmax_lengthという変数名に直した方がいい
    しかし、lengthといっても、バイト数なのか、文字数なのか、単語数なのかといった、
    様々な解釈ができる
    今回の場合は文字数を表しているので、
    max_lengthmax_charsに変更する

参考資料

clip(英語)の日本語訳、読み方は - コトバンク 英和辞典
https://kotobank.jp/ejword/clip

truncate(英語)の日本語訳、読み方は - コトバンク 英和辞典
https://kotobank.jp/ejword/truncate

切詰める(キリツメル)とは? 意味や使い方 - コトバンク
https://kotobank.jp/word/%E5%88%87%E8%A9%B0%E3%82%81%E3%82%8B-480332

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0