ドメイン駆動設計 実践ガイド

22,627 views

Published on

第47回 SEA関西プロセス分科会
2012.6.23
ドメイン駆動設計 実践ガイド

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

No Downloads
Views
Total views
22,627
On SlideShare
0
From Embeds
0
Number of Embeds
11,121
Actions
Shares
0
Downloads
196
Comments
0
Likes
39
Embeds 0
No embeds

No notes for slide

ドメイン駆動設計 実践ガイド

  1. 1. SEATwitter @masuda220
  2. 2. uuuuu u u u u
  3. 3. ¡ § (xix ) § §¡ § Java, Spring, MyBatis, Velocity § RDRA, ICONIX §
  4. 4. ¡ by¡¡
  5. 5. ¡ § §¡ § § § ICONIX (
  6. 6. ¡ § §¡ § § §
  7. 7. ¡ -ing § Never Ending Story¡ Evolving § § §¡ Pervading § § § §¡ Binding § §
  8. 8. ¡ § § §¡ § §¡ § ( §
  9. 9. ¡¡¡¡¡ § Putting the Domain Model to Work
  10. 10. The Building Blocks of a Model-Driven Design
  11. 11. ¡ § §¡ § RDRA + ICONIX¡ §
  12. 12. UI
  13. 13. UI
  14. 14. UI << interface >> () : void << application controller >> ( ) : Boolean << interface >><< domain object >> Thank You ( ) : void ( ) :void () :
  15. 15. Spring UI Spring Web FlowVelocity Spring MVCSpring BindBean Validation Spring ORM MyBatis SQL Spring Mail << domain object >> Apache James () : Spring JMS ActiveMQ Mule ESB
  16. 16. ¡ RDRA ICONIX¡ §¡ § § § §
  17. 17. ( CONIX) JavaDDL/SQL
  18. 18. Whole-Part <<interface>> <<structurer>> <<controller>> <<coordinator>> If/for <<information holder>> <<service provider>>
  19. 19. ¡ Associations §¡ Entities (key) §¡ Value Objects (value) §¡ Services §¡ Modules §
  20. 20. ¡ Whole-Part
  21. 21. ¡ § § ( ) § § §
  22. 22. ¡ § String, BigDecimal, Date(long) § § set String
  23. 23. ¡ § . § + UUID¡
  24. 24. ¡ § §¡ ( domain event ) § § < >¡¡¡
  25. 25. ¡ ¡ § § class CustomerList { private List<Customer> customers ; int numberOfCustomers(); void add( Customer customer ); () }add( )
  26. 26. ¡ by Hruby § §¡ by Fowler § A.1.5¡ by §¡ UML by §¡ The Data Model Resource Book 1,2,3¡ Data Model Patterns by Hay
  27. 27. ¡ ( ) § § §¡ § § §
  28. 28. ¡¡ § Aggregates § Factories § Repositories § Transfers
  29. 29. ¡¡¡¡ § Aggregate §
  30. 30. ¡ § Insert, update, delete¡ § § ... §¡ § §
  31. 31. ¡ § § §¡ § §¡ § § RESTful Web § § §
  32. 32. ¡ §¡ §¡ §¡ getter/setter §
  33. 33. ¡¡¡¡ § § §
  34. 34. Refactoring Toward Deeper Insight
  35. 35. ¡ § § §¡ § § § §¡ § §
  36. 36. ¡¡ § §¡ § §
  37. 37. ¡¡ private List< > ; If¡ private ; private List< > ;¡ = List< >#get(0)
  38. 38. ¡ § § § §
  39. 39. ¡ § § § § §¡ § §
  40. 40. ¡¡ § § §¡ passive active
  41. 41. ¡ § § § §
  42. 42. ¡ §¡ §¡ §
  43. 43. ¡ § § [size < max]¡ § Policy Rule OverbookingPolicy, CancelPolicy, § Criteria § Scheme Pricing Scheme, Identification Scheme ,
  44. 44. ¡ § § § § Procedure¡ § Fowler § Eriksson, Penker UML Process-Process Instance
  45. 45. ¡ § § EventType <<enum>>, StateType <<enum>> § Map<StateType, List<StateType> > § Map<StateType, List<EventType>> §¡ § §
  46. 46. ¡¡
  47. 47. is () () ()If ( date.before( SUMMER_START ) If ( isSummer( date ) ) || date.after( SUMMER_END ) ) {{ charge = summerCharge() ; charge = quantity * winterRate + winterFee ; }} elseelse {{ charge = winterCharge() charge = quantity * summerRate ; }} (124) (110) (149)
  48. 48. ¡ §¡ § overview § ( )
  49. 49. ¡¡¡¡¡
  50. 50. Strategic Design
  51. 51. ¡ § Context( § Context¡ Distillation § § Core Domain, Domain Vision Statement, Highlighted Core,¡ §
  52. 52. ¡ Bounded Context Context Map § § § As-Is¡ § § § § Java, .Net, PHP, § SLA, ,
  53. 53. ¡ Shared Kernel¡ Customer/Supplier Development Team¡ Conformist¡ Anticorruption Layer¡ Separate Ways¡ Open Host Service¡ Published Language¡ Single Bounded Context
  54. 54. ¡ Shared Kernel § §¡ Anticorruption Layer § §¡ Open Host Service¡ Published Language §¡ Single Bounded Context §
  55. 55. ¡¡¡ §¡ § §
  56. 56. ¡ § § §¡ Context Context
  57. 57. ¡ Separate Ways § Bounded Context § § §
  58. 58. ¡ § § URI sheme:code § § Fire and Forget¡ § § XML Key-Value §
  59. 59. ¡¡¡
  60. 60. ¡¡¡ § §

×