20150531 phpcon kansai
-
Upload
kumamidori -
Category
Technology
-
view
4.769 -
download
0
Transcript of 20150531 phpcon kansai
ドメイン駆動設計の 仕様パターン
2015/5/31 PHPカンファレンス関西2015 LT @kuma_nana
― Specification Pattern ―
はじめに2014年、大阪でドメイン駆動設計(DDD)の読書会や モデリングワークショップを開催 #dddosaka
はじめにドメイン駆動設計(DDD)とは?
ドメインとは・・・ ソフトウェアで解決しよう としている問題の領域のこと
→ ソフトウェアを作るとき、焦点を合わせるべきはドメイン
5分LTテーマとしては 壮大過ぎる・・・ので
今日は、 仕様パターンの話だけ!
仕様パターンとは?- DDD本で紹介されているパターンの1つ
- 仕様(業務ルール)を述語で定義
- 述語とは「真」か「偽」かを評価する関数
業務ルール(ドメインの制約)
たとえばこんな要件があった場合- 商品を注文する
仕様:注文実行可能な場合のみ実行:
- 注文する商品の在庫があること
- 注文顧客がブラックリストにのっていないこと
仕様パターンを使ったモデル
PHPによる実装
$inStoc->isSatisfiedBy($order)
注文オブジェクトの制約を検査する仕様
https://github.com/kumamidori/Sample.Specification
PHPによる実装
今回使ったライブラリ
https://github.com/phpmentors-jp/domain-kata
-ドメインモデルの「型」を提供
Domain Kata
まとめこれだけだと良さが
わからないですよね。本で読んで下さい( ╹◡╹)
実践本も今年出たよ
高木さん、ありがとうございました
副読本としておすすめ: ジェームス・O・コプリン 『マルチパラダイムデザイン』
参考リンク- Practical DDD #1: Specificationパターンの例
- 「ドメインモデリングにおける関数型パターン―仕様パターン」を翻訳しました
http://phpmentors.jp/post/54629162352/practical-ddd-1-specification
http://phpmentors.jp/post/117295285988/fp-in-domain-modeling-specification
@iteman @hidenorigoto いつもありがとうございます
Thanks!by @kuma_nana (つωˇ)