Minh họa cho Các nguyên lý SOLID
Law #42 Thiết kế

Các nguyên lý SOLID

SOLID Principles

Đây là bộ nguyên tắc giúp code dễ mở rộng, dễ thay đổi và giảm phụ thuộc chặt giữa các thành phần.

Nguồn tham khảo: Laws of Software Engineering

Tổng quan

SOLID là năm nguyên tắc thiết kế hướng đối tượng nhằm làm code dễ mở rộng, kiểm thử và thay đổi hơn: Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation và Dependency Inversion.

Ý chính

  • SOLID giúp giảm coupling và làm thay đổi ít lan rộng hơn.
  • Mỗi nguyên tắc xử lý một dạng rủi ro thiết kế khác nhau: trách nhiệm, extension, subtype, interface và dependency.
  • Áp dụng máy móc có thể tạo quá nhiều lớp; giá trị nằm ở việc giảm pain thật.

Ví dụ từ nguồn

Một UserManager vừa validate, truy cập database, gửi email và render response vi phạm SRP; tách trách nhiệm giúp test và sửa dễ hơn.

Dùng interface cho payment provider giúp thêm nhà cung cấp mới mà không sửa logic checkout cốt lõi.

Nguồn gốc

Các nguyên tắc được Robert C. Martin phổ biến dần qua nhiều năm; acronym SOLID được Michael Feathers đặt khoảng năm 2004.

Lưu ý khi áp dụng

Dùng SOLID như bộ câu hỏi review, không phải checklist tạo class. Nếu abstraction không giảm thay đổi lan rộng, nó chưa chứng minh giá trị.

← Quay lại danh sách 56 luật