Your SlideShare is downloading. ×
0
Ruby loves DDD
Ruby loves DDD
Ruby loves DDD
Ruby loves DDD
Ruby loves DDD
Ruby loves DDD
Ruby loves DDD
Ruby loves DDD
Ruby loves DDD
Ruby loves DDD
Ruby loves DDD
Ruby loves DDD
Ruby loves DDD
Ruby loves DDD
Ruby loves DDD
Ruby loves DDD
Ruby loves DDD
Ruby loves DDD
Ruby loves DDD
Ruby loves DDD
Ruby loves DDD
Ruby loves DDD
Ruby loves DDD
Ruby loves DDD
Ruby loves DDD
Ruby loves DDD
Ruby loves DDD
Ruby loves DDD
Ruby loves DDD
Ruby loves DDD
Ruby loves DDD
Ruby loves DDD
Ruby loves DDD
Ruby loves DDD
Ruby loves DDD
Ruby loves DDD
Ruby loves DDD
Ruby loves DDD
Ruby loves DDD
Ruby loves DDD
Ruby loves DDD
Ruby loves DDD
Ruby loves DDD
Ruby loves DDD
Ruby loves DDD
Ruby loves DDD
Ruby loves DDD
Ruby loves DDD
Ruby loves DDD
Ruby loves DDD
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

Ruby loves DDD

1,955

Published on

The Rubyday 2013 presentation about Domain Driven Design implementation in Ruby. Source code is available here https://github.com/emadb/ruby_loves_ddd

The Rubyday 2013 presentation about Domain Driven Design implementation in Ruby. Source code is available here https://github.com/emadb/ruby_loves_ddd

Published in: Technology
2 Comments
15 Likes
Statistics
Notes
No Downloads
Views
Total Views
1,955
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
0
Comments
2
Likes
15
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. RUBY♥DDD@EMADBwas DDD IN RUBY
  • 2. HI,I’MEMANUELE@EMADB
  • 3. DDDISABOUT...
  • 4. ANALYSIS
  • 5. DESIGN
  • 6. PATTERNS
  • 7. UBIQUITOUSLANGUAGE
  • 8. BOUNDEDCONTEXT
  • 9. Customer CustomerIdNameShippingAddressIdNameShipOrder(...)VatCodeBillingAddress
  • 10. ENTITYANDVALUEOBJECT
  • 11. CustomerAddress
  • 12. AGGREGATE
  • 13. REPOSITORYANDSERVICE
  • 14. DOMAINEVENT
  • 15. RUBY
  • 16. ‣Fully OOP (...for real)‣Expressiveness‣Metaprogramming‣DSL with ease‣Gems...tons of gems‣Great community
  • 17. CODE
  • 18. WE CAN DOMORE
  • 19. UIDOMAIN MODEL/BUSINESS LAYERDATA LAYER/ORMDATABASEAPPLICATION LAYER
  • 20. READvsWRITE
  • 21. STOPTHINKINGINCRUD
  • 22. CQRS
  • 23. UICOMMANDS/HANDLERSDATA LAYERDATABASEDOMAIN MODEL
  • 24. UICOMMANDS/HANDLERSDATA LAYERWRITE DBDOMAIN MODELREAD DBHANDLER
  • 25. EVENTSOURCING
  • 26. STATEvsTRANSITIONS
  • 27. ADD ITEM
  • 28. ADD ITEMADD ITEM
  • 29. ADD ITEMADD ITEMREMOVE ITEM
  • 30. ADD ITEMADD ITEMREMOVE ITEMAPPLY COUPON
  • 31. ADD ITEMADD ITEMREMOVE ITEMAPPLY COUPONSET SHIPPING ADDRESS
  • 32. ADD ITEMADD ITEMREMOVE ITEMAPPLY COUPONSET SHIPPING ADDRESSCOMPLETE ORDER
  • 33. ‣ Don’t store the state but thedeltas‣ The state can be rebuilt fromevents‣ Simple storing structures‣ Snapshot could be helpfulEVENTSOURCING
  • 34. THISRESOLVETHEEPICCUSTOMERREQUEST
  • 35. IWANTITFORYESTERDAY
  • 36. CODE
  • 37. REFERENCES
  • 38. SOURCECODEhttps://github.com/emadb/ruby_loves_ddd
  • 39. SPECIAL THANKS TO @BITTSTATIC @SANDROPAGANOTTI @AMELCHIORI

×