CoC ~Convention Over Configuration~
今回も以前紹介したRuby on Railsの理念に関する内容を深ぼっていきます。
CoCとは実際にどの様な場面で用いられているのか...
[Convention Over Configurationの略]
「設定よりも規約を優先する」
ここでいう規約
とは、
Railsがあらかじめ決めているルール
のことを指します。
ゼロから自身で設定するのではなく
「設定よりも規約を優先」して作業するという捉え方で問題ないようだ。
具体例
Ruby on Railsを使って開発を進めてきて
「コマンドだけで
Railsが自動で
ファイルなどを生成してくれた」
「Railsが勝手に
処理を用意してくれていた」
なんていう経験をしてきたと思います。
まさにソレが「設定よりも規約を優先」して作業する
ということ
rails g model item
item.rb
ファイルが自動で生成される
def index
@items = Items.all.order(id: 'DESC')
end
# コントローラーにindexというアクションを定義する
index.html.erb
がレスポンスとして返却される処理が用意される
CoCを意識するメリット
- すでに定義されている処理を利用するだけ
- 開発スピードが上がり質も担保できる
- 規約は開発者同士の共通認識であるため可読性が向上する
CoCを無視したらどうなるの?
class TestsController < ApplicationController
def render_top_page
render template: "tests/index"
end
end
アクションではなく、render_top_pageという自作のアクションを使用。
これにより、レスポンスであるビューファイルは自動で設定されないため、
renderメソッドを使用してレスポンスを指定。あぁダルい
class TestsController < ApplicationController
def index
end
end
index.html.erbというトップページのビューファイルを返却する場合、
規約にしたがってアクション名とビューファイル名を揃える
(レスポンスを自動で設定してくれる・レスポンスの指定をする必要がない。)
最小限のコードで実装が可能。ほんっと便利