Ruby学び
移植済み
演算子
ぼっち演算子
obj
がnilをとるか分からない時に
obj.sum
# obj == nil => NoMethodError: undefined method 'sum' for nil:NilClass
となってしまう。そのため、Rubyではぼっち演算子を使うべきである。
obj&.sum
# obj == nil => nil
Railsの場合、tryメソッドが使えるがぼっち演算子の方が処理は早いらしい(Rubyのぼっち演算子はRailsのObject#try
より高速(翻訳))
移植済み
書き方
ガード節
ガード節は以下の基準で使用する。
- if-then-else構文は、それぞれの処理に同等のウェイトを置く場合に使う
- ガード節は、特殊な条件を前段で弾き、その後の処理こそが正常な振る舞いであることを示す場合に使う
if-then-elseを使うかガード節を使うかの判断基準
命名に関して
-
メソッドの戻り値を変数に入れる場合、メソッド名と変数名の意味を合わせる
-
配列は複数形、ループ中の各要素は単数形(itemやelementは抽象度が高すぎるので使わないように)
-
dataやresult、input、infoも抽象度が高すぎて使わないように
-
メソッドやクラス名はそれだけで中でどんな処理をしているか分かるようにする(https://twitter.com/jnchito/status/1434658520780062721)
以下モデルやメソッドに名前を付けるときは英語の品詞に気をつけよう - Qiitaの内容 -
モデルの名前は名詞にする
-
二つの単語を繋げてモデルを作る場合は 形容詞 + 名詞 or 名詞 + 名詞にする
-
処理を実行するメソッドは 動詞のみ or 動詞 + 名詞にする
- Rubyの場合は真偽値を返すようなメソッドも「動詞で始めるルール」の対象外
- データの型を変換するようなメソッドでは、to_somethingのようなメソッド名もよく使う
- Railsの検証用メソッドなどでは、英文そのものをメソッド名にしてしまうケースもある
-
不可算名詞の使用は極力避けて工数を節約する(Railsの場合)
-
初心者のうちは名前を省略しない(プログラミング初心者は変数名やメソッド名を略さない方がいいよ、という話 - give IT a try)
-
長い名前を短くしたければ、省略例をライブラリ一覧 で調べる
-
number_of_xだと配列の名前にしにくいのでx_countsとかにする
-
使ってはいけない単語(プログラミングでよく使う英単語のまとめ【随時更新】 - Qiita)
get / set / check / change / xxxManager / xxxController / xxxType, xxxData, xxxItem, xxxInfo / compare / toggle -
ハンガリアン記法はしない(ハンガリアン記法 メモ - Qiita, ハンガリアン記法とハンガリアン汚染 - 雑記帳)