Clean Architecture with Dependency rule: by Robert c. Martin (Uncle Bob)
In general, when we think about an architecture, a high level structural diagram comes in our head. But how do we relate this concept of architecture in case of software development field? That could be an interesting entry point to understand what, why, and how questions behind the clean architecture explianed by Uncle Bob in his book “Clean Architecture”.
A building architect’s plan contains several boundry lines between rooms and other areas or structures. S(he) specifies the actual size and shape of them. Actually, the drawing contains detailed information. We can even understand the places for the lights and switches. But, in software development field, we develop modules/components or mental models instead of rooms and structures. However, we also give boundary lines between them. We make separation between the components in terms of accessibility and dependencies. Ramaining section of this article explains how we manage component dependencies in such a way that facilitates to leave the option open for the possible changes in the future.
Dependency rule
According to Uncle Bob, we can arrange an application in a circular layers and each layer contains different components as shown in the picture below: