Clean Architecture trong Android là gì?

0 0 0

Người đăng: DuyAnhNguyen

Theo Viblo Asia

Với thời kỳ công nghệ phát triển, việc có được kiến ​​trúc đúng là rất quan trọng nếu bạn muốn xây dựng một chương trình phần mềm tuyệt vời, đó là lý do tại sao nó lại cần thiết đến vậy. Nếu bạn quan tâm đến việc tạo ứng dụng Android với sự trợ giúp của Clean Architecture , thì bạn đã đến đúng nơi rồi. Ở đây, chúng tôi không chỉ cung cấp cho bạn hướng dẫn về MVVM (Model View-View Model ) mà chúng tôi sẽ sử dụng MVVM để kết nối nó thông qua Clean Architecture. Bài viết này sẽ xem xét cách tận dụng thiết kế này để tạo mã tách rời, đã được kiểm tra và có thể bảo trì. Trước khi đi vào thảo luận chính, trước tiên chúng ta hãy tìm hiểu về MVVM.

MVVM

Model-View-ViewModel (MVVM) là 1 framework thiết kế phần mềm tách logic chương trình khỏi các điều khiển giao diện người dùng. Nó được giới thiệu bởi hai kiến ​​trúc sư nổi tiếng của Microsoft là Ken Cooper và John Gossman vào năm 2005. Bên cạnh đó, MVVM còn được gọi là model-view-binder. Giống như nhiều mẫu thiết kế khác, MVVM hỗ trợ tổ chức mã và tách chương trình thành các mô-đun, giúp phát triển, cập nhật và tái sử dụng mã dễ dàng và nhanh hơn. Thiết kế này thường được sử dụng trong Windows và phần mềm trình bày đồ họa web. Windows Presentation Foundation (WPF) chạy trên nền tảng .NET của Microsoft, sử dụng thiết kế MVVM. MVVM cũng được sử dụng bởi Silverlight, một plug-in đa phương tiện tương đương internet WPF của Microsoft.

Clean Architecture trong Android

Clean Architecture là một phương pháp phát triển phần mềm mà bạn có thể xác định được chương trình thực hiện những gì chỉ bằng cách xem mã nguồn của nó. Ngôn ngữ lập trình, phần cứng và thư viện phần mềm cần thiết để đạt được mục tiêu của chương trình phải trở nên lỗi thời. Giống như các triết lý thiết kế phần mềm khác, Clean Architecture hướng đến mục tiêu cung cấp một quy trình tiết kiệm chi phí để phát triển mã chất lượng, hoạt động tốt hơn, dễ thay đổi hơn và ít phụ thuộc hơn. Robert C. Martin đã thiết lập Clean Architecture và quảng bá nó trên blog của mình, Uncle Bob, vào năm 2011.

Tại sao Kiến trúc lại cần thiết? Hãy cùng tìm hiểu sâu hơn. Mục đích của tất cả các kiến ​​trúc là quản lý tính phức tạp của ứng dụng của bạn. Trong một dự án nhỏ, bạn có thể không cần phải lo lắng về điều đó, nhưng nó có thể là cứu cánh cho những dự án lớn hơn.

Các vòng tròn trên biểu thị nhiều cấp độ phần mềm khác nhau trong ứng dụng của bạn. Trước khi tiếp tục, có hai điểm quan trọng cần ghi nhớ:

  1. Vòng tròn trừu tượng nhất nằm ở trung tâm, trong khi vòng tròn cụ thể nhất nằm ở bên ngoài. Nguyên tắc trừu tượng là những gì được gọi là Nguyên tắc trừu tượng. Theo Nguyên tắc trừu tượng, các vòng tròn bên trong phải bao gồm business logic, trong khi các vòng tròn bên ngoài phải chứa các chi tiết triển khai.
  2. Nguyên tắc phụ thuộc là một nguyên tắc Clean Architecture khác. Nguyên tắc này nêu rằng mỗi vòng tròn chỉ có thể dựa vào vòng tròn bên trong gần nhất với nó, cho phép kiến ​​trúc hoạt động. Có lẽ, bây giờ là lúc để hiểu Tại sao lại là MVVM với Clean Architecture?

MVVM với Clean Architecture##

View của bạn, tức là (Activity và Fragments), được tách biệt khỏi business logic của bạn bằng MVVM. Đối với các dự án nhỏ, MVVM là đủ, nhưng khi cơ sở mã của bạn phát triển rộng hơn, ViewModel của bạn bắt đầu phình to. Việc tách biệt các trách nhiệm trở nên khó khăn. Trong những trường hợp như vậy, MVVM với Clean Architecture là lựa chọn phù hợp. Nó tiến thêm một bước nữa trong việc tách biệt các trách nhiệm của cơ sở mã của bạn. Logic của các hành động có thể được thực hiện trong ứng dụng của bạn được trừu tượng hóa. Bây giờ, Clean Architecture cũng có thể được kết hợp với kiến ​​trúc Model-View-Presenter (MVP). Vì vậy, chúng ta sẽ sử dụng MVVM thay vì MVP vì Android Architecture Components đã có lớp ViewModel tích hợp sẵn—không cần khung MVVM!

Trước khi tiếp tục, bạn cần phải hiểu rõ rằng việc sử dụng Clean Architecture có thể có Ưu điểm và Nhược điểm. Chúng ta hãy cùng xem xét từng cái một.

Ưu điểm của Clean Architecture

  • Mã dễ kiểm tra hơn so với MVVM chuẩn.
  • Phân tách được quản lý hoàn hảo (ưu điểm đáng kể nhất).
  • Cấu trúc gói thân thiện với người dùng.
  • Dễ dàng duy trì dự án đang chạy.
  • Nhóm của bạn sẽ có thể triển khai các tính năng mới thậm chí còn nhanh hơn.

Nhược điểm của Clean Architecture

  • Khó để thành thạo. Có thể mất một thời gian để tìm hiểu cách tất cả các cấp độ tương tác, đặc biệt nếu bạn đến từ các kiến ​​trúc như MVVM đơn giản hoặc MVP.
  • Nó chứa nhiều lớp bổ sung, vì vậy nó không phù hợp với các ứng dụng có mức độ tinh vi thấp.

Kết hợp MVVM với Clean Architecture

Các lớp của MVVM

Có nhiều quan điểm khác nhau về số lượng cấp độ mà Kiến trúc sạch nên có. Thiết kế không chỉ định các lớp riêng biệt mà thay vào đó đặt nền tảng. Khái niệm là bạn điều chỉnh số lượng lớp theo nhu cầu của mình. Ở đây, để ngắn gọn, chúng ta sẽ sử dụng năm lớp, hãy xem chúng.

  • Presenter : Đây là một lớp tương tác với giao diện người dùng (UI).
  • Domain : Business Logic của ứng dụng được lưu trữ tại đây.
  • Use cases: Interactor là tên gọi khác của chúng.
  • Data : Tất cả các nguồn dữ liệu được định nghĩa theo nghĩa rộng.
  • Framework : Triển khai giao diện với Android SDK cũng như các triển khai lớp dữ liệu cụ thể.

Khi nào nên sử dụng Clean Architecture?

Điều quan trọng cần nhớ là Clean Architecture không phải là giải pháp khắc phục nhưng có thể áp dụng cho bất kỳ nền tảng nào. Dựa trên dự án, bạn nên xác định xem nó có đáp ứng được yêu cầu của mình không. Nếu dự án của bạn lớn và phức tạp, với nhiều business logic thì Clean Architecture sẽ có nhiều lợi thế. Tuy nhiên, đối với các tác vụ nhỏ hơn và đơn giản hơn, lợi ích có thể không đáng kể — bạn sẽ phải viết nhiều mã hơn và tăng độ phức tạp với tất cả các lớp, cũng như đầu tư nhiều thời gian hơn.

References : https://www.geeksforgeeks.org/what-is-clean-architecture-in-android/

Bình luận

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

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

2 Cách để Triển Khai MVVM Trong Dự Án IOS

MVVM không nhất thiết phải bind cùng RxSwift, nhưng nó sẽ tốt hơn, vậy tại sao . MVVM Cùng Swift. Để thực hiện hai cách ràng buộc mà không phụ thuộc, chúng ta cần tạo Observable của riêng chúng ta. Đây là đoạn code :.

0 0 87

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

2 Ways to Execute MVVM iOS

Đối với việc phát triển ứng dụng dành cho thiết bị di động, MVVM là kiến trúc hiện đại. Nó thực hiện phân tách mối quan tâm tốt hơn để làm cho mã sạch hơn.

0 0 30

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

Một chút về MVC, MVP và MVVM

MVC, MVP, và MVVM là 3 mô hình thông dụng khi phát triển phần mềm. Trong bài viết này, mình sẽ giới thiệu với các bạn 3 mô hình Model View Controller (MVC), Model View Presenter (MVP) và Model View Vi

0 0 93

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

Khởi tạo ViewModel sao cho hợp thời đại

Bài viết này tôi sẽ sử dụng Kotlin để khởi tạo ViewModel và AndroidViewModel. Nếu bạn chưa biết Delegation trong Kotlin thì hãy đọc bài viết này trước nhé.

0 0 71

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

Mô hình MVVM và cách triển khai trong ứng dụng Android

Xin chào các bạn trong bài viết này, mình sẽ hướng dẫn các bạn tìm hiểu và cách triển khai Mô hình kiến trúc MVVM trong Ứng dụng Android, không khó khăn lắm đâu cùng theo dõi nha . 1>Định Nghĩa.

0 0 366

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

BLoC Hay MVVM + GetX – Đâu là “Chân Lý” cho phát triển dự án bằng Flutter?

Trước khi đi vào tìm kiếm và so sánh giữa các Kiến trúc khi triển khai trên Flutter – Dart để xem Kiến trúc nào sẽ phù hợp, tối ưu, thuận tiện, dễ triển khai … hơn thì mình xin phép kể về hành trình v

0 0 72