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.

Common ddd pitfalls

1,298 views

Published on

While DDD is becoming more and more popular, there are quite a few potential misinterpretations and malpractices floating around. These issues are time-consuming, and they induce a lot of frustrations and needless yak-shaving experiences.

These pitfalls are plenty, ranging from higher level things (for example a lack of focus on the strategic part) to technical things (for example misinterpretations of the repository pattern), and even the surrounding area (for example errors made when"selling DDD" to your team members).

By sharing this experience I hope to reduce the huge amount of time and effort people spend on "doing DDD wrong".

Published in: Technology, Business
  • Be the first to comment

Common ddd pitfalls

  1. 1. Common DDD pitfalls @ToJans - 2014
  2. 2. Strategic
  3. 3. Tactical Strategic
  4. 4. TacticalInfrastructure Strategic
  5. 5. TacticalInfrastructure Strategic Sellingit
  6. 6. TacticalInfrastructure Strategic Sellingit General
  7. 7. Strategic Bounded contexts
  8. 8. Strategic Bounded contexts
  9. 9. Strategic Ignoring bounded contexts
  10. 10. Strategic Ignoring bounded contexts
  11. 11. Strategic Conway’s law
  12. 12. Strategic Conway’s law
  13. 13. Strategic “Gedankenexperiment”
  14. 14. Strategic “Gedankenexperiment”
  15. 15. Strategic Lack of a domain expert
  16. 16. Strategic Lack of a domain expert
  17. 17. Strategic Bounded contexts A lot Little POV   Amount   Up- / Downstream A lot Little Contracts   Dependencies   Some things that work * * n = 1
  18. 18. Tactical
  19. 19. Tactical
  20. 20. Tactical DDD for non-core domains
  21. 21. Tactical DDD for non-core domains
  22. 22. Tactical Ignoring some aspects
  23. 23. Tactical Ignoring some aspects
  24. 24. Tactical Repositories, exposing state
  25. 25. Tactical Repositories, exposing state https://www.facebook.com/Jeroom.Inc
  26. 26. Tactical In repos, “Tell, don’t ask”
  27. 27. Tactical In repos, “Tell, don’t ask” … but don’t overdo it
  28. 28. Infrastructure
  29. 29. Infrastructure BDUF – what you built
  30. 30. Infrastructure BDUF – what you need
  31. 31. Infrastructure Frameworks <> Libraries
  32. 32. Infrastructure Frameworks <> Libraries
  33. 33. Infrastructure Frameworks & Libraries: too generic
  34. 34. Infrastructure Generic frameworks & Libraries => hacks
  35. 35. Infrastructure Eventual consistency: do you need it?
  36. 36. Infrastructure Eventual consistency: do you need it?
  37. 37. Infrastructure Anything: do you need it? ”Il semble que la perfection soit atteinte non quand il n'y a plus rien à ajouter, mais quand il n'y a plus rien à retrancher.” Antoine de Saint-Exupéry
  38. 38. Selling it Selling DDD to your peers & bosses
  39. 39. Selling it Tough
  40. 40. Selling it Really tough
  41. 41. Selling it This is a different presentation
  42. 42. Selling it … but I’ll show you the recap
  43. 43. And now it’s time for a
  44. 44. And now it’s time for a
  45. 45. Recap And now it’s time for a
  46. 46. Strategic • Don’t ignore bounded contexts • Understand Conway’s Law • Think first, act later • Have domain experts Craft BCs and make them explicit
  47. 47. Tactical • Only in core domains • Find all ways to model them • Repositories = domain only • Repositories = Tell, don’t ask
  48. 48. Infrastructure • Don’t build a BDUF • Frameworks <> libraries • Avoid hacks • Aim for simplicity, not ease of building
  49. 49. Selling it • Don’t force feed • Lead by example • One step at a time
  50. 50. General
  51. 51. General
  52. 52. General
  53. 53. General
  54. 54. General
  55. 55. General
  56. 56. General HAVE FUN!
  57. 57. And now it’s time for
  58. 58. Questions And now it’s time for
  59. 59. What was the background seeded by?
  60. 60. Brightness was upped
  61. 61. Image was colorized
  62. 62. Color was removed
  63. 63. Huge blur was applied

×