suin.io

Concern? Decorator? Service? Policy? Rails界の用語を調べてみた

suin2016年7月22日

Railsに入門したので自分向けのRailsの概念マップを整理するため、気になったRailsの機構やデザインパターンを簡単に調べてみました。

Railsを使う前は、PHPのMVCフレームワークを作ったり、ScalaのMVCフレームワークを使ったりしていたので、ControllerやModelなどについては既知だったのですが、ConcernやDecoratorなど初見の考え方に絞ってしらべてみました。

今回は存在する用語と概要をつかむことを調査の目的としたため、今回は用語と概要(ひとこと)だけにとどめます。各概念の詳細は実践してみてから、別の形でまとめ上げたいと思います。

ActiveSupport

RubyのAPIを拡張し、便利なメソッドを生やしてくれる。

Helper

ビューロジックをDRYにするための関数を実装する場所。

Concern

モデルやコントローラのDRYを促進するためのmix-in機構。

Decorator

モデルに関連したビューロジックを実装するに適した場所。いわばモデル単位のHelper。

Service

コントローラとモデルの間のレイヤで、複数のモデルにまたがるビジネスロジックを実装する場所。

Policy

アクセス制御ロジックをコントローラからPolicy Objectに追い出し、DRYにするデザインパターン。

RELATED POSTS