railsについて、先輩にもらったアドバイスまとめ(その1)

最近はRuby on Railsで社内システムを作っています。 その中で先輩からもらったアドバイスやレビューで受けた指摘をまとめます。

new()はいらない

hoge = Hoge.new()

hoge = Hoge.new

でよい。
(Rubyは短く楽に書けるときは楽をするのじゃ!)

is_available?のisはいらない

有効かを判定しtrue/falseを返却するようなメソッドの名前は

def is_available?
    # 何らかの処理
end

ではなく

def available?
    # 何らかの処理
end

でよい。
(present?やblank?というメソッドがありますよねー)

※私はこの「?」を疑問形の「?」だと思っていました…(Is this a pen?的な)

破壊的でないメソッドに「!」はいらない

def hoge!
    # 破壊的な処理
end

であり、破壊的でないメソッドに「!」はいらない。
(破壊的な処理を行う場合はprivateメソッドであっても「!」をつけるようにしています)

ある機能追加のために複数のテーブルにカラム追加を行う場合、migrateファイルは分ける

分けたのですが理由が思い出せず…。
※これはもしかしたら1つの機能追加で複数のテーブルに手が入ったことをわかりやすくするために、migrateファイルはわけないほうがよかったのかも?と思いました。

できるだけ短く、意味のある処理ごとにメソッドにする

def calc_hoge
    hoge = 0
    hoge = hoge + (a * b)
    hoge = hoge + (c * d)
end

def calc_hoge
    hoge = 0
    hoge += calc_a_b
    hoge += calc_c_d
end

def calc_a_b
    a * b
end

def calc_c_d
    c * d
end

のようにしたほうがコードが説明的になってわかりやすい。


2016/4/19(火)追記

ステータスコード404でリソースの存在を隠すこともできる

現在作成しているシステムはユーザーにロールを設定しており、ロールによっては閲覧できないリソースがある。
そのリソースを表示するようなページに権限のないユーザーがアクセスした場合、
403が返るとリソースが存在していることが権限のないユーザーにも分かってしまう。
存在自体を隠したいときは404を返す。

詳しくは下記の記事を参照
HTTPステータスコードを適切に選ぶためのフローチャート : 難しく考えるのをやめよう | インフラ・ミドルウェア | POSTD

railsで404のときに表示されるページは public/404.html である。 任意のデザインにしたい場合は404.htmlを編集すればよい。