Abstractions
Explore the role of abstractions and the Dependency Inversion Principle in Clean Architecture. Understand how to isolate application core logic from external dependencies by creating interface layers. This lesson helps you build scalable, modular systems by focusing on what the system does rather than implementation details.
We'll cover the following...
This is where encapsulation appears again. When it comes to our systems (as we do in relation to code), we want to speak in terms of the domain problem and leave the implementation details as hidden as possible.
The architecture of a system
In the same way that code has to be expressive (almost to the point of being self- documenting) and have the right abstractions that reveal the solution to the essential problem (minimizing accidental complexity), the architecture should tell us what the system is about. Details such as the solution used to persist data on disk, the web framework of choice, the libraries used to connect to external agents, and interaction between systems are not relevant. What is relevant is what the system does. A concept such as a screaming architecture (SCREAM) reflects this idea.