Skip to content

Instantly share code, notes, and snippets.

@stefanofago73
Created November 28, 2023 12:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save stefanofago73/c0b2be4f2c83e04c7503f4919b88e9b0 to your computer and use it in GitHub Desktop.
Save stefanofago73/c0b2be4f2c83e04c7503f4919b88e9b0 to your computer and use it in GitHub Desktop.
This is a joke to create a post criticizing DDD but using ChatGPT

Navigating the Quirky Waters of Domain Driven Design: A Humorous Expedition

THE PROMPT

Act as an expert of Domain Driven Design, temp 0.4

Task:

  • Your task is to write a full-fledged blog post about all defects of Domain Driven Design using jokes and important quotes from Alberto Brandolini's posts, books and works.

Format:

  • Every argument has a dedicated paragraph.
  • Every line needs to be 200 characters long.
  • Summarize concepts at the end of every paragraph.
  • Criticisms must be carefully justified with concrete examples or notes deriving from projects in real-life use cases.

Tone:

  • Formal and Ironic

THE RESULT

In the hallowed halls of software design, Domain Driven Design (DDD) is often heralded as the savior. However, let's peel back the layers and expose the defects, much like unwrapping a not-so-delightful gift.

Ubiquitous Language: Lost in Translation

  • DDD preaches the gospel of a shared language between developers and domain experts. In reality, this utopian linguistic harmony resembles a Tower of Babel. What's a "Customer" to a developer might be a "Client" to a business analyst.
  • Summary: Ubiquitous language, meet lost in translation.

Aggregates: More Like Aggravations

Aggregates, the building blocks of DDD, promise cohesion and consistency. However, in the quest for perfect consistency, we end up with aggregates resembling a Frankenstein's monster, stitched together with business rules and technical constraints. Summary: Aggregates, the Dr. Jekyll and Mr. Hyde of software design.

Bounded Contexts: Divided We Stand

Bounded Contexts aim to encapsulate models and isolate contexts. However, in the real world, these boundaries often turn into impenetrable fortresses. Sharing data across contexts becomes a saga reminiscent of negotiating peace treaties between warring nations. Summary: Bounded Contexts, where sharing is a four-letter word.

Event Storming: Storming Out of Patience

Alberto Brandolini's brainchild, Event Storming, promises to be the silver bullet for understanding complex domains. Yet, in practice, it often devolves into a chaotic storm, leaving participants more puzzled than enlightened. Summary: Event Storming, where clarity is a distant thunder.

Strategic Design: More Like Strategic Overload

The strategic design phase, aiming for a big picture view, often results in a maze of interconnected diagrams resembling abstract art. What was meant to be a guiding light becomes a tangled web, trapping even the most seasoned architects. Summary: Strategic Design, turning clarity into abstract expressionism.

Overemphasis on Modeling: The Model T Trap

DDD advocates for rich domain models, but this richness can turn into an overwhelming complexity akin to assembling a car with all the bells and whistles. In the end, you might have a luxurious model T, but simplicity is left on the assembly line. Summary: Rich domain models, where simplicity is an endangered species.

Event Sourcing: Eventual Consistency, Eventual Headache

While Event Sourcing promises a time-traveling journey through the system's history, the eventual consistency it preaches can become an eventual headache. Reconciling events and ensuring a coherent state becomes a perpetual challenge. Summary: Event Sourcing, where time travel comes with a hefty migraine.

In conclusion, Domain Driven Design, despite its noble intentions, is not a panacea. It's a toolkit fraught with pitfalls and unintended consequences. As Alberto Brandolini himself quipped, "The purpose of DDD is not to make things simple but to make them understandable." Well, understanding comes with its own set of challenges, and sometimes, the cure is as perplexing as the ailment.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment