コードの可読性
created : / updated :
命名規則
https://github.com/kettanaito/naming-cheatsheet
基本的な命名規則については、上記のリポジトリに簡潔にまとまっている。
明らかに使い捨ての変数を除き、名前には情報を詰め込みたい。多少長くなってもエディタが補完してくれる。
文脈を把握していなくても、ぱっと読んだだけで意図が理解できる、明確で具体的な命名が理想である。
もしあまりにも長すぎる名前になってしまったら、そもそもその名前を持たせようと思っていることが間違いかもしれない。スコープを狭めて小さく作り直すことで、名前をシンプルにすることもできる。
困ったら日本語を入力するとネーミングを生成してくれるサービスを使うのもよい。
誤解されない命名
API からユーザーデータを取得するメソッドは get_user_data()
でなく fetch_user_data()
と命名するとよい。
限界値を決めるときは、limit
でなく max_
や min_
を使うとよい。
コードを段落に分類する
コードも一種の文章であるのだから「段落」に分けるべきという考え方。
GitLab の Newlines style guide がシンプルにまとまっていて分かりやすい。
早めに返す
失敗ケースは早期リターンで処理する。
def hoo
return if is_invalid?
...
end
説明変数
分かりやすいように名前をつける
CSV.parse(csv_text) do |row|
user_id = row[0]
user_name = row[1]
end
要約変数
大きなコードを小さな名前に置き換える
user_name = params[:user_data][:name]
一度に1つのタスクを行う
任意のメソッド内に、そのメソッドでやりたいことと直接関連しない、無関係の下位問題 が相当量あれば、それらを抽出して別の関数にする。
これはテスト容易性にも繋がる。