Minh họa cho DRY
Law #40 Thiết kế

DRY

DRY (Don't Repeat Yourself)

Mỗi mẩu tri thức quan trọng nên có một nơi thể hiện đáng tin cậy thay vì bị sao chép rải rác.

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

Tổng quan

DRY nói mỗi mẩu tri thức trong hệ thống nên có một biểu diễn rõ ràng, duy nhất và đáng tin cậy. Vấn đề không chỉ là lặp dòng code, mà là lặp cùng một quyết định nghiệp vụ ở nhiều nơi.

Ý chính

  • Khi một rule thay đổi, bạn nên sửa một nơi thay vì săn nhiều bản sao.
  • Lặp tri thức làm tăng rủi ro inconsistency và bug vì các bản sao dễ lệch nhau.
  • Không phải mọi đoạn code giống nhau đều nên gộp; hãy gộp khi chúng cùng một lý do thay đổi.

Ví dụ từ nguồn

Database URL hardcode ở năm file khiến đổi host phải sửa nhiều nơi; config trung tâm là cách DRY hơn.

Hai màn hình cùng copy rule tính discount sẽ dễ lệch khi marketing đổi chính sách.

Nguồn gốc

Andy Hunt và Dave Thomas đặt tên DRY trong The Pragmatic Programmer năm 1999 với định nghĩa về biểu diễn duy nhất của tri thức.

Lưu ý khi áp dụng

Tránh "DRY quá sớm": nếu hai đoạn giống nhau nhưng có thể tiến hóa khác nhau, gộp chúng sẽ tạo coupling giả.

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