Workshop Advanced Application Architecture
This workshop covers all of the three layers from what is known as a layered architecture: the domain, application and infrastructure layer.
You'll learn how to:
- Design a clean domain model
- Model your application's use cases as application services
- Connect those well-designed layers to the world outside
Protecting your high quality domain model and use cases from external influences can be accomplished by applying a so-called ports & adapters or hexagonal architecture.
At the end of the workshop you...
know how to separate infrastructure from core (domain) code, divide your application into layers, and clearly distinguish its ports and adapters.
- Separating infrastructure from core code
- Repositories and entities
- Application services and command objects
- Value objects
- Read models and read model repositories
- Layers; The Dependency Rule; The Dependency Inversion Principle
- Ports and Adapters
This is a workshop for PHP developers with at least some experience with building web applications using a framework (or CMS) and a database.
About the trainer
Matthias Noback is a professional web developer (since 2003). He lives in Zeist, The Netherlands, with his girlfriend, son, and daughter. Matthias has his own web development, training and consultancy company called Noback's Office. He has a strong focus on backend development and architecture, always looking for better ways to design software. Since 2011 he's been blogging about all sorts of programming-related topics on <matthiasnoback.nl>. He's published several programming books as well (most recently: "Principles of Package Design" and a "Style Guide for Object Design").
When and where?
Date: Thursday 12 March
Starts at: 10.00 Hours
Ends at: 17.00 Hours
Workshop ticket: € 250 (excl. 21% VAT)
(Web Camp are seperate tickets)
Bring your laptop and make sure to install the following project on it before you arrive at the workshop: https://github.com/matthiasnoback/layers-ports-and-adapters-workshop/ (see the README for detailed instructions).