In this workshop we'll take a slice of a pretty standard PHP project and gradually work our way towards an application that has a better architecture. "Better" meaning that:
It will be easy to find out what the uses cases of the application are ("screaming architecture")
It will be easy to find a place for every piece of the application ("layers")
It will be easy to find out how users and other systems can interact with it ("ports & adapters")
It will be easy to provide tests and automated acceptance criteria for it ("the testing pyramid")
I'm sure you would like your project to have these properties! I'll show you all the little steps that will help you transform your application to this new level.
44. ADVANTAGES OF USING LAYERS,
PORTS & ADAPTERS
Offers insight into the application
Isolates the low-level details
Allows for alternative implementations
Helps with testing
57. A WELL-BALANCED TEST SUITE
Adapters can be easily replaced
Test suite is fast
Feedback is quick
Small amount of fragile tests
Enables continuous delivery