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