Dependency rejection: functional architecture
For the longest time, we were always told that abstractions and interface composition are the way to go. But does dependency injection really solve more problems than it creates?
In this talk, I will show an alternative approach to dependency injection at project-level architecture - dependency rejection. This approach guides us into building software that resembles a pipeline rather than a tree.
I will show how we can refactor a typical onion architecture into one that doesn't have leaky abstractions, doesn't pollute our application with the unnecessary non-deterministic state, is extremely easy to test, doesn't need mocks, and is highly readable.