20150531 phpcon kansai

Post on 05-Aug-2015

4.776 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

ドメイン駆動設計の 仕様パターン

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 (つωˇ) 

top related