Refactor: Xử lý Feature Envy (Đố kỵ tính năng)
Dấu hiệu khi một method 'quan tâm' đến dữ liệu của class khác nhiều hơn class của chính nó.
© 2026 Laravel
Khám phá bài viết thuộc danh mục Refactoring tại tuantq.online.
Dấu hiệu khi một method 'quan tâm' đến dữ liệu của class khác nhiều hơn class của chính nó.
Dấu hiệu khi hai class biết quá nhiều về dữ liệu của nhau và cách tách biệt chúng để tăng tính đóng gói.
Khi class của bạn quá lớn, ôm đồm quá nhiều chức năng. Kỹ thuật tách class theo nguyên lý Single Responsibility.
Khi hàm của bạn cần 5-6 tham số trở lên, đó là lúc cần đóng gói dữ liệu vào Parameter Object.
Khi code quá phụ thuộc vào cấu trúc của các đối tượng lồng nhau (VD: $a->b()->c()->d()). Cách ẩn giấu cấu trúc nội bộ.
Khi class chỉ làm mỗi việc ủy quyền gọi hàm cho class khác. Tại sao nên xóa bỏ nó?
Khi việc thêm một class ở nhánh này bắt buộc bạn phải thêm class ở nhánh kia. Cách phá bỏ sự phụ thuộc này.
Khi bạn dùng string thay vì object để lưu giá trị. Cách đưa nghiệp vụ vào các đối tượng Value Object.
Dấu hiệu nhận biết và cách tách nhỏ các hàm quá tải, vi phạm nguyên lý Single Responsibility.
Làm sao để refactor những class 'God Object' ngàn dòng mà không gây sập hệ thống? Quy trình từng bước một.