Suggest an editImprove this articleRefine the answer for “What does Clean Architecture represent?”. Your changes go to moderation before they’re published.Approval requiredContentWhat you’re changing🇺🇸EN🇺🇦UAPreviewTitle (EN)Short answer (EN)**Clean Architecture** is an approach to designing software systems, proposed by Robert Martin (Uncle Bob), where the code is built in concentric layers separated by responsibility. The main idea is to isolate business logic from infrastructure so the system stays easy to test, change, and independent of frameworks. **Key point:** dependencies always point inward, toward business logic, which makes the system resilient to technology changes and lets it evolve for years without rewriting the core.Shown above the full answer for quick recall.Answer (EN)Image**Clean Architecture** is an approach to designing software systems, proposed by Robert Martin (Uncle Bob), where the code is built in **concentric layers** separated by responsibility. The main idea is to **isolate business logic from infrastructure** so the system is easy to test, change, and independent of frameworks. --- ### Core principle > **Dependencies point inward** - meaning outer code knows about inner code, but not the other way around. > Business rules know nothing about the database, UI, or network details. --- ### Layers of Clean Architecture 1. **Entities** - business models and rules that depend on nothing. Example: `Order`, `Payment`, `User` with methods `validate()`, `calculateTotal()`. 2. **Use Cases / Interactors** - implement application business logic, defining *what to do* with entities. Example: `CreateOrder`, `ProcessPayment`. 3. **Interface Adapters** - the layer that adapts data between internal use cases and the outside world (UI, API, DB). Example: controllers, presenters, repositories. 4. **Frameworks & Drivers (outer ring)** - specific technologies: frameworks, databases, web servers, UI. Example: Django, Spring, PostgreSQL, REST API. --- ### Advantages - Independence from frameworks and databases. - Easy infrastructure replacement (e.g., SQL → NoSQL). - Easy testing of business logic without external dependencies. - High modularity and control over dependencies. --- ### Diagram ```javascript [ Frameworks/UI ] ↓ [ Interface Adapters ] ↓ [ Use Cases ] ↓ [ Entities ] ``` --- **Summary:** > **Clean Architecture** splits code into independent layers with dependencies pointing toward business logic. > This makes the system resilient to technology changes and lets it evolve for decades without rewriting the core.For the reviewerNote to the moderator (optional)Visible only to the moderator. Helps review go faster.