SOLID

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

SDLC&STLC

1. Tổng quan nền tảng về quy trình phát triển và kiểm thử phần mềm Trong bất kỳ một dự án công nghệ thông tin nào, dù là ứng dụng di động nhỏ hay hệ thống phần mềm doanh nghiệp khổng lồ, việc để sản phẩm đi đến thành công không thể dựa vào sự […]

Frontend Web Roadmap

  Roadmap download here frontend web   Keyword Git Agile Waterfall Scrum Kanban SOLID Internet Fundamentals HTTP/HTTPS DNS & Domain Browser Fundamentals HTML Semantic HTML Forms & Validation CSS Flexbox & Grid Responsive Web Design Bootstrap JavaScript Fundamentals DOM Async JavaScript Fetch / HTTP Client TypeScript npm / pnpm / yarn React Components React Component […]

Mobile Flutter Roadmap

Roadmap download here flutter Keyword Git Agile Waterfall Scrum Kanban SOLID HTTP & HTTPS REST API JSON & HTTP Status Codes API Validation API Error Handling Authentication & Authorization JWT & Token Authentication PHP & Laravel Fundamentals Laravel Routing & Controllers Go Fundamentals Goroutine & Concurrency Go Channels Go Context Gin-Gonic OpenAPI / Swagger PostgreSQL […]

Backend Roadmap

  Keyword Git Agile Waterfall Scrum Kanban SOLID Return First HTTP & HTTPS REST API JSON & HTTP Status Codes API Validation API Error Handling Authentication & Authorization JWT & Token Authentication PHP & Laravel Fundamentals Laravel Routing & Controllers Go Fundamentals Goroutine & Concurrency Go Channels Go Context Gin-Gonic OpenAPI / Swagger PostgreSQL / […]

Leave a Reply

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