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

1,332 views

Published on

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

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,332
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
2
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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

  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

×