Javier Estraviz bio photo

Javier Estraviz

Code, Data Science, Scrum 43.293, -3.001

Email Twitter LinkedIn Github Codewars DataCamp freeCodeCamp

Domain-Driven Design Distilled
      Software Design   DDD · Eric Evans · Safari · Vaughn Vernon

I currently have unlimited access to an enormous amount of books and videos through safaribooksonline. The paradise for anyone interested in software development. So, days ago, I thought of downloading a “light” videocourse that I could follow while commuting to work by tube. This Domain-Driven Design Distilled is not exactly light in content, but at least I do not need to be in front of a code editor to follow.

The course is taught by Vaughn Vernon, author of the book Implementing Domain-Driven Design of 2013, that had continuation last year with the book that gives name to the course that I have seen. My first approach to DDD and without going through the already classic volume by Eric Evans, Domain-Driven Design: Tackling Complexity in the Heart of Software (2003). This remains pending for me later (for much later, I would say).

The Distilled version hasn’t excited me much, to be honest, but it aroused some interest to me. It is for this reason that I keep as pending to read this reduced version of the same subject: Domain-Driven Design Quickly, which can be downloaded for free from InfoQ.

To conclude, here we have an extract from the explanation of what is DDD, which we can read in DDD Comunity:

Domain-driven design (DDD) is an approach to developing software for complex needs by deeply connecting the implementation to an evolving model of the core business concepts. Its premise is:

  • Place the project’s primary focus on the core domain and domain logic. Base complex designs on a model.
  • Initiate a creative collaboration between technical and domain experts to iteratively cut ever closer to the conceptual heart of the problem.

The premise is simple, but pulling it off in the messy real world is hard. It calls for new skills and discipline, and a systematic approach. Domain-driven design is not a technology or a methodology. DDD provides a structure of practices and terminology for making design decisions that focus and accelerate software projects dealing with complicated domains.