Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

23,305 views

Published on

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

Published in: Technology

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

  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. ¡¡¡ § §

×
Save this presentationTap To Close