Trùng lặp mã nguồn còn rẻ hơn là trừu tượng hóa sai cách

Hầu hết các lập trình viên đều được học về nguyên tắc DRY từ sớm. Do Not Repeat Yourself.

Quy tắc này rất hợp lý. Nó giúp ngăn chặn lỗi và tiết kiệm thời gian.

Nhưng nhiều lập trình viên lại tuân thủ quy tắc này một cách quá máy móc. Họ cố gắng gộp mọi thứ vào một hàm hoặc một lớp duy nhất. Điều này dẫn đến tình trạng over-engineering.

Khi bạn ép buộc hai đoạn logic khác nhau vào cùng một sự trừu tượng hóa, bạn đang tự tạo ra vấn đề. Bạn làm tăng độ phức tạp và khiến mã nguồn trở nên khó đọc.

Một sự trừu tượng hóa sai lầm còn tốn kém hơn là một chút trùng lặp mã nguồn.

Nếu bạn trùng lặp mã nguồn, bạn biết chính xác logic đó nằm ở đâu. Nếu cần thay đổi một phần, bạn chỉ cần thay đổi tại đó.

Nếu bạn sử dụng một sự trừu tượng hóa tồi, bạn sẽ phải thay đổi mọi thứ liên quan đến nó. Bạn có nguy cơ làm hỏng các tính năng vốn chẳng liên quan gì đến tác vụ hiện tại của mình.

Hãy tuân thủ các quy tắc sau để đảm bảo an toàn:

  • Viết mã cho tác vụ đang thực hiện.
  • Đợi cho đến khi một khuôn mẫu (pattern) xuất hiện ba lần rồi mới tiến hành trừu tượng hóa.
  • Ưu tiên khả năng đọc hiểu hơn là việc tiết kiệm vài dòng code.
  • Chấp nhận rằng một chút trùng lặp là điều lành mạnh.

Đừng cố gắng làm cho mọi dòng code trở nên hoàn hảo. Hãy tập trung vào việc làm cho mã nguồn của bạn dễ dàng thay đổi.

Nguồn: https://dev.to/kelvin_kariuki_20f4bec616/developer-take-on-code-duplication-is-far-cheaper-than-the-wrong-abstraction-3g0b