Your SlideShare is downloading. ×
0
20150531 phpcon kansai
20150531 phpcon kansai
20150531 phpcon kansai
20150531 phpcon kansai
20150531 phpcon kansai
20150531 phpcon kansai
20150531 phpcon kansai
20150531 phpcon kansai
20150531 phpcon kansai
20150531 phpcon kansai
20150531 phpcon kansai
20150531 phpcon kansai
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

20150531 phpcon kansai

1,095

Published on

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,095
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
0
Comments
0
Likes
4
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

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

×