SOLID

Nguyên tắc thiết kế SOLID là gì? - Viblo

SOLID là 5 nguyên tắc thiết kế phần mềm hướng đối tượng, giúp xây dựng hệ thống dễ hiểu, dễ thay đổi, dễ mở rộng, dễ test, ít gây ảnh hưởng dây chuyền, dễ bảo trì
SOLID gồm:
S: Single Responsibility Principle

O: Open/Closed Principle

L: Liskov Substitution Principle

I: Interface Segregation Principle

D: Dependency Inversion Principle

 

S: Mỗi class chỉ nên xử lý 1 công việc duy nhất

O: Thêm tính năng mới bằng cách mở rộng, ko phải sửa code cũ

L: Class con phải thay được class cha mà chương trình ko bị lỗi. Nếu class con kế thừa mà làm sai lệch hẳn thì thiết kế đang có vấn đề

I: interface nhỏ gọn, ko ép class thực hiện mấy hàm mà nó ko dùng

D: các module cấp cao ko được phụ thuộc vào module cấp thấp, mà nó nên được phụ thuộc vào interface của module cấp thấp

DESIGN PATTERNS

Là những công thức có sẵn để giải các bài toán code hay gặp, mấy cái hay gặp nhất (trong flutter) là:

  • Singleton: chỉ có đúng 1 instance trong cả app (vd: service cấu hình, db helper)
  • Factory: hàm tạo object theo điều kiện. Dart có hẳn factory constructor
  • Repository: lớp trung gian lấy data (API, SQLite, Firebase) để UI ko cần biết data đến từ đâu
  • Observer: khi data đổi thì tự báo cho UI cập nhật. ChangeNotifier và Stream chính là pattern này, nên state management thực chất dựa trên nó
  • Builder: dựng object/UI từng bước
  • Decorator/Composition: bọc widget này nào widget khác
  • Strategy: đổi cách xử lý lúc chạy, như ví dụ nhiều phương thức thanh toán

Bài viết khác

Language Switching trong Flutter

        Trong quá trình phát triển ứng dụng di động, khả năng hỗ trợ nhiều ngôn ngữ ngày càng trở nên quan trọng. Một ứng dụng chỉ sử dụng duy nhất một ngôn ngữ có thể gặp khó khăn khi tiếp cận người dùng ở các quốc gia và khu vực khác […]

UTC & Local Time Conversion

Trong thời đại toàn cầu hóa, con người thường xuyên làm việc, học tập và giao tiếp với những người ở các quốc gia khác nhau. Một cuộc họp trực tuyến có thể được tổ chức tại Việt Nam, nhưng người tham gia lại đang ở Hoa Kỳ, Anh, Nhật Bản hoặc Australia. Vì vậy, […]

Logging / Monitoring / CI/CD

1. Logging / Monitoring / CI/CD là gì? Trong quá trình phát triển phần mềm, việc viết code để ứng dụng chạy được chỉ là một phần của công việc. Khi đưa ứng dụng vào sử dụng thực tế, lập trình viên còn phải quan tâm đến nhiều vấn đề khác như ứng dụng có […]

Docker

1. Docker là gì? Docker là một nền tảng được sử dụng để đóng gói, triển khai và chạy ứng dụng trong các môi trường độc lập, được gọi là Container. Docker giúp lập trình viên đưa mã nguồn, thư viện, các gói phụ thuộc và những thành phần cần thiết để chạy ứng dụng […]

Unit Testing và Integration Testing

1. Unit Testing và Integration Testing là gì? Unit Testing và Integration Testing là hai phương pháp kiểm thử phần mềm thường được sử dụng trong quá trình phát triển ứng dụng. Mục đích của hai phương pháp này là kiểm tra xem chương trình có hoạt động đúng theo yêu cầu hay không, đồng […]

Message Broker

1. Message Broker là gì? Message Broker là một thành phần trung gian được sử dụng để tiếp nhận, quản lý và chuyển tiếp thông điệp giữa các ứng dụng hoặc các thành phần trong một hệ thống phần mềm. Công nghệ này thường xuất hiện trong những hệ thống Backend, kiến trúc Microservices và […]

Leave a Reply

Your email address will not be published. Required fields are marked *