DEV Community

MOHAMED FAWAS
MOHAMED FAWAS

Posted on

E-Commerce Platform with Golang : Understanding clean architecture

Understanding Clean Architecture

Clean Architecture, popularized by Robert C. Martin, is a software design philosophy that separates the elements of a design into ring levels. The main rule of clean architecture is that code dependencies can only move from the outer levels inward. This means that:

  1. Business rules don't depend on UI or database.
  2. Business rules don't know anything about the outside world.
  3. The UI can change without changing the rest of the system.
  4. The database can be swapped out without affecting the business rules.

Benefits of Clean Architecture

  • Independence of framework: The architecture doesn't depend on the existence of some library of feature-laden software.
  • Testability: The business rules can be tested without the UI, database, web server, or any other external element.
  • Independence of UI: The UI can change easily, without changing the rest of the system.
  • Independence of Database: You can swap out PostgreSQL for MongoDB, or something else entirely, without affecting the business rules.
  • Independence of any external agency: Your business rules don't know anything about the outside world.

Top comments (0)