- Core: Essential, independent, and stable elements
- Outermost layer: Web/framework/DB, etc., elements that are easily changed during portability or technological transitions
- Outer layers depend on inner layers (not related to the flow of control)
https://www.slideshare.net/AtsushiNakamura4/clean-architecture-release
- Generalization rules of architecture
- Essence
- Dependencies should only be directed towards higher-level policies (one-way)
- Separate and control the flow of control from the direction of dependencies
- Example of potential problem: Dependency on a database
- If written normally, the code that calls the DB becomes dependent on the DB
- If the arrow of dependency points towards the DB, the arrow of dependency in the opposite direction of the domain (center of the diagram) will be created
- Solution
- Consider the flow of control and the direction of dependencies separately
- The flow of control naturally goes from the code to the DB because it accesses the DB
- Reverse the direction of dependencies
- Modify the design of the DB to align with the code
- Resolve it by following the style of the code
Introduction to iOS App Design Patterns
iOSDC2020
- Enterprise Business Rule
- Center of the concentric circles
- Logic that does not change depending on the app
- For example, in a Reversi app, the rules of Reversi itself
- There may be Reversi apps for playing against AI or against other players, but the Enterprise Business Rule is the part that does not change regardless of these variations.