Decoupling from infrastructure (3 hours)

Most application code freely mixes domain logic with infrastructural concerns. Models are directly tied to the relational database of the project, use cases are inseparable from their web controllers, and external services are used without an appropriate abstraction. This limits your ability to design the application in a domain-driven, test-first way.
What we need is a way to separate core code from infrastructure code. And that’s surprisingly easy. All the design patterns have already been invented for that. Until we run out of time, we’ll keep (re)discovering patterns like Controller, Application Service, Entity, Read Model, Domain event, and so on. These patterns can be used to establish a testable, portable application core, with a focus on behavior, instead of data.
Design- and Style-Guides

We talk about guides and rules for programmers in the scope of their code style and object style. With the help of book author Matthias Noback we realize that there is more possible with static analysis than one might think. And there is definitely a use for a catalogue of stereotypes of classes.
Advanced Web Application Architecture (cancelled)

About the workshop
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.
A testing strategy for hexagonal applications

Program:
- 18:00 - Opening
- 18:10 - Matthias Noback: A testing strategy for hexagonal applications (in English)
- 19:00 - Martin Fris: Value objekty a ich praktické využitie napr. aj v hrách (in Slovak)
- 20:00 - Networking + refreshment
Decoupling from infrastructure
Most application code freely mixes domain logic with infrastructural concerns. Models are directly tied to the relational database of the project, use cases are inseparable from their web controllers, and external services are used without an appropriate abstraction. This limits your ability to design the application in a domain-driven, test-first way.
What we need is a way to separate core code from infrastructure code. And that’s surprisingly easy. All the design patterns have already been invented for that. Until we run out of time, we’ll keep (re)discovering patterns like Controller, Application Service, Entity, Read Model, Domain event, and so on. These patterns can be used to establish a testable, portable application core, with a focus on behavior, instead of data.
Talking with Matthias Noback
An hour talking about open source, communities and conferences.
[Live] #1 - Making Money While Doing Open Source
On the first PHP com Rapadura [Live], we’re going to receive @matthiasnoback and @matthieunapoli to discuss how to make money while doing open source.