最近DDDやDCIなどのキーワードが気になっているのですが、そんな折に下記のような勉強会が開かれるのを知ったので参加してみました。
10月26日 豆ナイト:ドメイン居酒屋~モデル駆動プログラミングの集い~(東京都)
DDDやDCIが気になっているのは、「Railsで “skinny controller, fat model” を意識して書くとモデルにメソッドが集まりまくる」のをなんとかしたいなと思っていて、その解決方法としてDDDやDCIが有効なのではないかと考えているからです。
内容的には、最初に発表された増田さんのスモールオブジェクトプログラミングの話がとても響きました。このスライドで書かれているアンチパターン「ひとつの部品(クラス)がいろいろ知っていて、なんでもやりたがる」ってまさにRailsのmodelなんじゃないのかなあ。
rails でスモールオブジェクトプログラミングをするには具体的にどうしたらいいのか、増田さんが紹介されていた書籍を読んで勉強したいと思います。紹介されている「ドメイン駆動設計」という本は、quick guide的な書籍の日本語版を無料で手に入れることが出来るので早速ダウンロードしました。
Domain Driven Design(ドメイン駆動設計) Quickly 日本語版
あとは読んだ/これから読む予定のDDDやDCIの記事や書籍のまとめを置いておきます。それぞれ結構な分量なのでなかなか読み切れません><勉強会駆動でやっていくのがいいのかなあ…
- [ 技術講座 ] Domain-Driven Designのエッセンス 第1回
- RubySource - DDD for Rails Developers. Part 1: Layered Architecture.RubySource
- RubySource - DDD for Rails Developers. Part 2: Entities and ValuesRubySource
- RubySource - DDD for Rails Developers. Part 3: Aggregates.RubySource
- lcrodriguez/rails-ddd-todolist
- The Right Way to Code DCI in Ruby :: Mike Pack Development
- DCIアーキテクチャ - Trygve Reenskaug and James O. Coplien - Digital Romanticism
- Ruby, Rails, DCI and OOP. Don’t just make abstractions, write clean, intention-revealing Ruby. Clean Ruby by Jim Gay teaches about OOP, DCI, and more!
- Objects on Rails