Clean Architecture là gì - Ưu nhược và cách dùng hợp lý

0 0 0

Người đăng: hiệp nguyễn

Theo Viblo Asia

Clean Architecture là gì - Ưu nhược và cách dùng hợp lý

Clean Architecture là một kiến trúc ứng dụng nổi tiếng, dựa trên nguyên lý loại bỏ sự lệ thuộc giữa các đối tượng cũng như các layer trong ứng dụng. Kiến trúc này gồm 4 layer được biểu diễn bằng các vòng tròn đồng tâm.

Mục Lục


Clean Architecture là gì?

Clean Architecture kế thừa nguyên lý Dependency Inversion trong SOLID, được cấu trúc theo 4 tầng:

  • Entities
  • Use Cases
  • Interface Adapters
  • Frameworks & Drivers

Nguyên tắc chính là "hướng tâm" — layer trong không biết gì về layer ngoài.

Entities

Layer trong cùng, nơi chứa các business logic cốt lõi. Ví dụ: Object Person với hàm setAge đảm bảo age ≥ 1.

Use Cases

Chứa logic ứng dụng (application-specific logic). Ví dụ: Use Case đăng ký tài khoản.

Interface Adapters

Chuyển đổi dữ liệu phù hợp giữa Use Cases và giao diện người dùng hoặc hệ quản trị cơ sở dữ liệu.

Frameworks & Drivers

Tầng ngoài cùng – nơi triển khai các công cụ, thư viện cụ thể như Web Framework, DB driver,...


Ưu và nhược của Clean Architecture

Nhược điểm

  1. Cồng kềnh, phức tạp cho ứng dụng nhỏ.
  2. Trừu tượng cao, ảnh hưởng đến performance.
  3. Khó tuyển người hiểu kiến trúc đúng cách.

Ưu điểm

  1. Chia để trị hiệu quả – tách biệt rõ ràng giữa các tầng.
  2. Dễ maintain và mở rộng – giảm breaking change.
  3. Dễ viết unit test – mock các tầng qua interface.

Áp dụng Clean Architecture sao cho hợp lý

Không phải ứng dụng nào cũng cần đủ 4 tầng. Tùy theo quy mô và độ phức tạp, có thể dùng mô hình đơn giản hơn.

Ví dụ với REST API có thể chỉ dùng 3 tầng:

  • Transport
  • Business
  • Repository/Storage

Ví dụ flow API Update Product:

Ở tầng Storage, có thể dùng MongoDB hoặc MySQL – chỉ khác nhau về implement cụ thể, cùng sử dụng interface chung.


Clean Architecture không phải là "chuẩn bắt buộc", mà là định hướng tốt để tổ chức code dễ test, dễ mở rộng, và dễ maintain.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Javascrpit clean code

Konnichiwa mina-san, hôm nay mình sẽ giới thiệt một số tips để code các bạn được clean hơn. . Variables. Functions.

0 0 37

- vừa được xem lúc

Code tốt hơn bằng cách làm theo các phương pháp hay nhất về JavaScript này

Cho dù bạn là một nhà phát triển dày dặn kinh nghiệm đang tìm cách tinh chỉnh phong cách viết mã của mình hay một người mới bắt đầu mong muốn nắm bắt các yếu tố cần thiết, bài đăng này là dành cho bạn

0 0 29

- vừa được xem lúc

TypeScript Clean Code

TypeScript tricks for Clean Code. Chúng ta sẽ khám phá 10 TypeScript ticks để viết mã sạch, kèm theo các ví dụ minh họa cách chúng hoạt động và lý do chúng hữu ích.

0 0 15

- vừa được xem lúc

[Clean code] Source code hoàn hảo thì không có quá nhiều comments?

Thông qua chương 4 cuốn Clean code - Robert C.Martin sẽ phần nào giải đáp câu hỏi trên.

0 0 6

NAT (Network Address Translation) là gì? Tại sao backend có thể ra Internet mà không có IP public?

NAT (Network Address Translation) là gì? Tại sao backend có thể ra Internet mà không có IP public. . 1. NAT là gì.

0 0 0

Làm Chủ Strict Mode Trong TypeScript — Biến Trình Biên Dịch Thành "Code Reviewer"

Làm Chủ Strict Mode Trong TypeScript — Biến Trình Biên Dịch Thành "Code Reviewer". Bạn viết TypeScript nhưng vẫn để trình biên dịch dễ dãi như JavaScript? Vậy đã đến lúc bạn làm quen với Strict Mode —

0 0 0