In this full day of hands-on coding we will approach development with Doctrine ORM from a tactical DDD perspective.

We will start from a minimal specification, exploring yet-to-be-discovered business scenarios in a rich domain, how to plan features, how to isolate them into workable units, implement them in a framework-less environment and finally test them effectively.

We'll freshen up some DB design done "domain-first", looking at the possible performance issues, how to mitigate them on the long run and how to provide an optimal data model for both writes and reads without sacrificing valuable abstractions in the domain logic.

At the end of the day, you will have a good overview of how to attack relational DB abstractions, when to optimise for business interactions, and how to optimise for read interactions.


Comments are closed.

Michael Bothe at 19:23 on 6 May 2018

Very good workshop on technical design in DDD. Plain php and rather little doctrine, which was really good to see that you can get along well in your business logic without a framework. Altogether well-prepared example with a balanced proportion of coding sessions.

In addition, good advice on useful packages, clean code and OOP.

Marco Pivetta (Speaker) at 19:47 on 6 May 2018

Hey Michael,

Do you have any advice on how to improve the workshop?

Michael Bothe at 17:27 on 7 May 2018

Hi Marco,

not as much. I can only think of things for which I have not yet learned the satisfactory solution in DDD.

- I would like to learn more about how we can handle more complex bounded contexts. Several aggregates behind the root aggregate, maybe.
- It would also be nice to know, how much we should translate between "bounded contexts" or when a "shared kernel" makes sense
- a little bit more about eventstorming and how we can make it into technical design, but that may not fit into the framework of a technical design workshop

In the end this may be a too complex field for the kind of workshop and more a topic of a more advanced workshop. Maybe something I have to learn myself.

The way of the workshop was very good and I have no idea how it can be improved.