のぶLab.

流しのソフトウェアエンジニアの雑記帳. Android, Scala, Clojure, Ruby on Railsなど

Fat Model解消のアイディア

肥大化したActiveRecordモデルをリファクタリングする7つの方法(翻訳) | TechRacho http://techracho.bpsinc.jp/hachi8833/2013_11_19/14738

※ concernにmodelの機能を移しても本質的には何も変わっていない. どこに何があるかわかりにくく見通しが悪い状態は続く

  • Valueオブジェクト

  • Serviceオブジェクト

  • Formオブジェクト

  • Queryオブジェクト複雑なクエリをここに展開

    • コンポジションでクエリ結合するなどの使い方

    • ViewオブジェクトRailsでの"View"とは異なるものなので"Viewモデル"と呼ぶと良さそう

  • Policyオブジェクトビジネスルールをカプセル化

    • メモリに展開したドメインモデルの操作に特化
  • Decoratorオブジェクト

Railsドメインロジックの実装方法まとめ - assertInstanceOf('Engineer', $a_suenami)

http://a-suenami.hatenablog.com/entry/2014/12/07/200427

エリック・エヴァンスのドメイン駆動設計

エリック・エヴァンスのドメイン駆動設計

リファクタリング:Rubyエディション

リファクタリング:Rubyエディション