railsでkaminariを使ってページネーションを実装していたときの反省メモ。
マジックナンバーを記述してしまった
ページネーションの表示数を生の数字で指定していたため、メンターから指摘をいただいた。
def index @books = Book.page(params[:page]).per(10) end
これでは他の開発者にとって数字の意図がわからず、自分も後で忘れたときに困る。こういった数字を「マジックナンバー」と呼ぶ。
そのプログラムを書いた時点では製作者は数値の意図を把握しているが、他のプログラマーまたは製作者本人がマジックナンバーの意図を忘れたときに閲覧すると「この数字の意味はわからないが、とにかくプログラムは正しく動く。まるで魔法の数字だ」という皮肉を含む。
次のような理由で、マジックナンバーはプログラム中に含まれないことが好ましいとされる。
- その数値の持つ意味がわかりづらい。
- 数値を変更する場合に、複数の箇所を変更しなければならない可能性がある。
config に記述する
設定ファイルに書くため、kaminariのconfigを作成する。
bin/rails g kaminari:config
config/initializers/kaminari_config.rb
が生成される。
Kaminari.configure do |config| config.default_per_page = 10 # config.max_per_page = nil # config.window = 4 # config.outer_window = 0 # config.left = 0 # config.right = 0 # config.page_method_name = :page # config.param_name = :page # config.max_pages = nil # config.params_on_first_page = false end
config.default_per_page = 10
にとりあえず設定した。