Bounded contexts, commands, domain events, enterprise integration patterns, (de)serialization, (de)coupling, messaging
Aggregates, consistency, domain invariants, entities, value objects, domain events, application services, transactions.
Introduction to containers, Docker, Docker Compose, building, testing, sharing and deploying images
Commands, queries, events, event-sourced write models, read model projections, query optimizations, transactional versus eventual consistency.
Clean architecture, layered architecture, screaming architecture, domain model, application services, infrastructure, ports & adapters, project structure.
To be determined
TDD, Architecture diagrams, Living documentation, Dependency injection, Symfony bundle design, OSS Package development.
My workshops are well-balanced: they contain equal portions of theory and practice. You can start implementing advanced concepts right-away and verify the correctness of their results with the trainer.
Classes are limited to 15 participants to give everybody an equal opportunity to learn.
When explaining a technical concept, it will not be buried beneath a pile of framework code or implementation details. The concepts are in plain sight, ready for you to grasp.
Sandbox projects contain back-to-basic PHP code, so when you've finished your training, you can then use any framework you like to let your code blossom.
I offer lots of advanced workshop topics. We don't focus on the basics, we dive straight to the core of a concept.
There are a lot of different subjects we can cover, it's up to you to select which will be most useful for you or your team.
So glad I attended @matthiasnoback's 2day workshop on advanced application development. Already looking forward to the next workshop.— Caroga (@Caroganet)
In this 2-day workshop, you'll go back to the basics of object-oriented programming and learn to apply core principles of Domain-Driven Design to your domain objects: aggregates, consisting of entities and value objects.
You'll learn how to progress from domain knowledge to a functioning domain model, and use unit testing along the way to describe the expected behavior of your objects.
Many web applications out there don't get the testing love they need. Some test suites only have unit tests; they run fast, but will never prove that features as a whole function correctly. Some test suites only have functional tests; they run very slowly, they often fail for no reason, but they can prove that all the wiring is correct too. There is a middle ground, which we'll be aiming to reach in this 2-day workshop. We take an existing application with only functional tests and "tease out" other types of tests. We thereby:
In this 2-day workshop we’ll dive into the topic of Autonomous Service design, with a sandbox project containing several interdependent services. These services send messages to each other, and they call each other to retrieve data. In other words, they’re not autonomous at all. We’ll figure out some ways in which we can invert dependencies and leverage a messaging solution to achieve autonomy after all.
|30-09-2017||Zeist (NL)||An introduction to Docker, Compose and Swarm|
|20-04-2017||Zeist (NL)||Integrating Bounded Contexts|
|17-03-2017||Zeist (NL)||Advanced Application Development|
|02-01-2017||Vlissingen (NL)||Integrating Bounded Contexts with RabbitMQ|
|21-12-2016||Utrecht (NL)||Integrating Bounded Contexts with RabbitMQ|
|19-12-2016||Utrecht (NL)||Living documentation|
|28-11-2016||Utrecht (NL)||Software Architecture Diagrams|
|19-09-2016||Utrecht (NL)||DTOs and serialization techniques|
|07-09-2016||Vlissingen (NL)||Tactical DDD (just better OOP)|
|23-07-2016||Barcelona (ES)||Tactical DDD (just better OOP)|
|04-07-2016||Utrecht (NL)||Tactical DDD (just better OOP)|
|07-09-2016||Vlissingen (NL)||An evening with CQRS|
|03-06-2016||Utrecht (NL)||An evening with CQRS|
|03-06-2016||Utrecht (NL)||Hexagonal Architecture training|
|20-11-2015||Paris (FR)||Hexagonal Architecture training|
|08-09-2015||Amsterdam (NL)||Hexagonal Architecture training|
|21-04-2015||Zürich (CH)||Hexagonal Architecture training|
|18-03-2015||Milan (IT)||Hexagonal Architecture training|