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ả.