Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

よい名前を付けましょう リーダブルなんたらとか

2012-09-12 に行われた Minami.rb の第14回勉強会の発表資料です

  • Login to see the comments

よい名前を付けましょう リーダブルなんたらとか

  1. 1. よい名前を付けまし ょう リーダブルなんたらとか よしだあつし(@yalab)よい名前を付けましょう - リーダブルなんたらとか Powered by Rabbit 2.0.5
  2. 2. 自己紹介よい名前を付けましょう - リーダブルなんたらとか Powered by Rabbit 2.0.5
  3. 3. 自己紹介 省略よい名前を付けましょう - リーダブルなんたらとか Powered by Rabbit 2.0.5
  4. 4. なぜ名前重要か?よい名前を付けましょう - リーダブルなんたらとか Powered by Rabbit 2.0.5
  5. 5. なぜ名前重要か? http://jp.rubyist.net/ magazine/?0001-Hotlinksよい名前を付けましょう - リーダブルなんたらとか Powered by Rabbit 2.0.5
  6. 6. リーダブルコードよい名前を付けましょう - リーダブルなんたらとか Powered by Rabbit 2.0.5
  7. 7. 第2章 名前に情報を詰め込む ✓ 2.1 明確な単語を選ぶ ✓ 2.2 tmp や retval などの汎用的 な名前を避ける ✓ 2.3 抽象的な名前よりも具体的 な名前を使うよい名前を付けましょう - リーダブルなんたらとか Powered by Rabbit 2.0.5
  8. 8. 第2章 名前に情報を詰め込む ✓ 2.4 名前に情報を追加する ✓ 2.5 名前の長さを決める ✓ 2.6 名前のフォーマットで情報を 伝える ✓ 2.7 まとめよい名前を付けましょう - リーダブルなんたらとか Powered by Rabbit 2.0.5
  9. 9. 第3章 誤解されない名前 ✓ 3.1 例: filter() ✓ 3.2 例: Clip(text, length) ✓ 3.3 限界値を含めるときは min と max を使う ✓ 3.4 範囲を指定するときは first と last を使うよい名前を付けましょう - リーダブルなんたらとか Powered by Rabbit 2.0.5
  10. 10. 第3章 誤解されない名前 ✓ 3.5 包含/排他的範囲には begin と end を使う ✓ 3.6 ブール値の名前 ✓ 3.7 ユーザーの期待に合わせる ✓ 3.8 例: 複数の名前を検討する ✓ 3.9 まとめよい名前を付けましょう - リーダブルなんたらとか Powered by Rabbit 2.0.5
  11. 11. 注意 ✓ ここから先は必ずしも正しいもの ではありません。 ✓ こうやったほうがいいんじゃね?と いう僕からの提案だと考えてくだ さい。よい名前を付けましょう - リーダブルなんたらとか Powered by Rabbit 2.0.5
  12. 12. 注意 ✓ いろいろ聞きますので答えてくれ るとうれしいです。 ✓ rails の話だったりそうじゃなかっ たり様々です。よい名前を付けましょう - リーダブルなんたらとか Powered by Rabbit 2.0.5
  13. 13. getter と setter は無駄 class User{ function getAge(){ return $this->age; } function setAge($age){ return $this->age = $age; } }よい名前を付けましょう - リーダブルなんたらとか Powered by Rabbit 2.0.5
  14. 14. getter と setter は無駄 class User attr_accessor :age end user = new User(name: yalab) user.age = 4よい名前を付けましょう - リーダブルなんたらとか Powered by Rabbit 2.0.5
  15. 15.   ✓ getter だけとか setter だけなら まだよいかも… ✓ jQuery の引数付き呼び出しは setter で引数なし呼び出しは getter はわりとかっこいい ✓ ruby にはそもそも attr_accessor なんかがあるので それを使おうよい名前を付けましょう - リーダブルなんたらとか Powered by Rabbit 2.0.5
  16. 16. 具体的過ぎる名前は変数には 向かない //一週間立ったら削除する $sevenDaysAgo = 7 * 3600 * 24; if($lastAccess + $sevenDaysAgo < time()){ ... }よい名前を付けましょう - リーダブルなんたらとか Powered by Rabbit 2.0.5
  17. 17. 具体的過ぎる名前は変数には 向かない limit_date = 7 * 3600 * 24 if last_access + limit_date < Time.now endよい名前を付けましょう - リーダブルなんたらとか Powered by Rabbit 2.0.5
  18. 18.   ✓ ハードコーディングは変更に弱い ✓ さきほどの例だと $limitDate と か $expireDate?よい名前を付けましょう - リーダブルなんたらとか Powered by Rabbit 2.0.5
  19. 19. 過程はさておき最終的に得られ るものの名前にする class User 例えば誕生日から年齢を計算する場合 def calc_age end よりは def age end endよい名前を付けましょう - リーダブルなんたらとか Powered by Rabbit 2.0.5
  20. 20.   ✓ これは賛否両論 ✓ リーダブルコード的にはおそらくア ウト ✓ 万葉の大場さん的には推奨 ✓ よしだも推奨よい名前を付けましょう - リーダブルなんたらとか Powered by Rabbit 2.0.5
  21. 21. 中間テーブルのネーミングをさ ぼってはいけない x users - users_groups - groups o users - memberships - groups x people - people_items - items o people - orders - itemsよい名前を付けましょう - リーダブルなんたらとか Powered by Rabbit 2.0.5
  22. 22.   ✓ 両方の名前でやると「中間テーブ ルである」ということはわかるけど それしかわからない ✓ 適切な名前がついてると例えばコ メントでそれが何であったかなど を残さなくてもよくなるよい名前を付けましょう - リーダブルなんたらとか Powered by Rabbit 2.0.5
  23. 23. class 名は名詞、メソッド名は動 詞か名詞 class Order def items end def sum pluck(:price).inject(&:+) end def calc_tax @tax = 10 * sum / 100 end def total_all sum + @tax end endよい名前を付けましょう - リーダブルなんたらとか Powered by Rabbit 2.0.5
  24. 24.   ✓ プログラミングの対象はだいたい 値なのでだいたい名詞 ✓ 動詞を使う時はオブジェクトの内 部の値を変える時 ✓ 何かのトリガーになるものも動詞 ✓ 動名詞は微妙よい名前を付けましょう - リーダブルなんたらとか Powered by Rabbit 2.0.5
  25. 25. クラス名とメソッド名での名前の 重複を避ける class Plan def monthly_plan end end ではなく class Plan def monthly end endよい名前を付けましょう - リーダブルなんたらとか Powered by Rabbit 2.0.5
  26. 26. 閑話休題よい名前を付けましょう - リーダブルなんたらとか Powered by Rabbit 2.0.5
  27. 27. ここからはゲームをしましょう ✓ フレームインフレームアウト ✓ OSSなコードのリファクタリング ✓ 何かしらを設計してみる ✓ 名前をつけてやるよい名前を付けましょう - リーダブルなんたらとか Powered by Rabbit 2.0.5

×