Programming Princibles
· 4 min read
SOLID, DRY, KISS, YAGNI, Code Review & Clean code, ...
Dưới đây là các nguyên tắc lập trình phổ biến, kèm theo mức độ dự án thích hợp để áp dụng:
1. SOLID Principles
- Mô tả: 5 nguyên tắc giúp thiết kế hệ thống hướng đối tượng dễ bảo trì và mở rộng:
- S: Single Responsibility Principle (Mỗi lớp có một trách nhiệm duy nhất).
- O: Open/Closed Principle (Mở để mở rộng, đóng để chỉnh sửa).
- L: Liskov Substitution Principle (Thay thế lớp cha bằng lớp con mà không làm hỏng ứng dụng).
- I: Interface Segregation Principle (Giao diện không nên chứa các phương thức không cần thiết).
- D: Dependency Inversion Principle (Phụ thuộc vào abstraction, không phải implementation).
- Mức độ áp dụng:
- Dự án vừa và lớn (phần mềm thương mại, hệ thống backend).
- Dự án cần khả năng mở rộng lâu dài.
2. DRY (Don’t Repeat Yourself)
- Mô tả: Hạn chế lặp lại mã nguồn bằng cách sử dụng abstraction, hàm, hoặc lớp.
- Mức độ áp dụng:
- Tất cả các dự án, từ nhỏ đến lớn.
- Đặc biệt quan trọng trong ứng dụng cần bảo trì thường xuyên.
3. KISS (Keep It Simple, Stupid)
- Mô tả: Thiết kế đơn giản, tránh phức tạp hóa không cần thiết.
- Mức độ áp dụng:
- Dự án nhỏ và vừa (ứng dụng MVP, prototyping).
- Phù hợp khi tốc độ phát triển ưu tiên hơn khả năng mở rộng.
4. YAGNI (You Aren’t Gonna Need It)
- Mô tả: Chỉ lập trình những gì cần thiết, không tạo tính năng "dự phòng" không cần thiết.
- Mức độ áp dụng:
- Dự án nhỏ và vừa (ứng dụng cần nhanh ra thị trường).
- Không phù hợp cho các dự án dài hạn hoặc có yêu cầu mở rộng lớn.
5. Separation of Concerns (Tách biệt mối quan tâm)
- Mô tả: Mỗi thành phần của phần mềm nên đảm nhận một vai trò cụ thể. Ví dụ:
- UI xử lý giao diện.
- Logic xử lý nghiệp vụ.
- Dữ liệu được quản lý bởi cơ sở dữ liệu.
- Mức độ áp dụng:
- Dự án vừa và lớn.
- Phần mềm đa lớp (3-tier hoặc MVC).