Skip to content
This repository has been archived by the owner on Dec 6, 2021. It is now read-only.

About_Clean_Architecture en

Tetsuya Mori edited this page Sep 11, 2018 · 2 revisions

What is Clean Architecture?

image

Clean Architecture proposed by Uncle Bob at 8th Light's blog in August 2012 It is a software architecture.

Represented by Hexagonal Architecture and Onion Architecture It is a kind of Layered Architecture and is an architecture that strongly considers separation of software by layers.

Rule

Clean Architecture defines the following rules.

  • Define a layer according to the role of software / program
  • Layer dependency is unidirectional
  • Use a method based on Dependency Inversion Principle for layer dependency resolution
  • The number of layers is indeterminate

Separate layers

Domain

The Clean Architecture requires that business logic be separated properly.

By describing the class according to the role as UseCase and maintaining a mutual relationship, it is expected that we can suppress the influence on other layers.

Data

We define a variety of data structures such as data related to drawing of UI and data brought from external DB as classes and structures.

They should also be defined as separate data structures to realize the separation of interest between layers. You may also want to define a layer like interface adapter for converting these data.