image

  • 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.