DEV Community

Cover image for DRY Principles
Công Quý Nguyễn
Công Quý Nguyễn

Posted on

DRY Principles

DRY Principle - "Don't Repeat Yourself"


🤔 Vậy DRY là gì nhỉ?

"DRY" là viết tắt của "Don't Repeat Yourself", má»™t nguyên tắc vàng trong lập trình (và cả trong cuá»™c sống nữa đó!). Ã? tưởng rất Ä‘Æ¡n giản: "Ä?ừng lặp lại chính mình."

Hãy tưởng tượng bạn viết má»™t công thức nấu ăn mà phải copy-paste từng bÆ°á»›c má»—i khi làm má»™t món ăn khác. Lỡ bạn muốn thêm muối, bạn sẽ phải cập nhật từng bản copy. Ngán chÆ°a? Ä?ó chính là "lặp lại" trong lập trình!


DRY dưới góc nhìn lập trình

Nguyên tắc DRY yêu cầu bạn cô lập logic hoặc đoạn mã thư�ng lặp lại vào một vị trí duy nhất. Khi cần thay đổi, bạn chỉ việc sửa một nơi mà không cần tìm từng dòng để sửa.

✔ Ví dụ:

Bạn đang viết một ứng dụng quản lý thú cưng:

Trước khi áp dụng DRY:

public void feedDog() {
    System.out.println("Feeding the dog");
}

public void feedCat() {
    System.out.println("Feeding the cat");
}

public void feedParrot() {
    System.out.println("Feeding the parrot");
}
Enter fullscreen mode Exit fullscreen mode

Cứ thêm thú cưng là bạn phải viết thêm một phương thức mới. Thật phi�n phức đúng không nào? 🙈

public void feedAnimal(String animal) {
    System.out.println("Feeding the " + animal);
}
Enter fullscreen mode Exit fullscreen mode

Bây gi�, bạn chỉ cần g�i feedAnimal("dog"), feedAnimal("cat") mà không lo lặp lại đoạn code y chang nhau! Tiết kiệm th�i gian, giảm đau đầu. 🥳


DRY trong thực tế

DRY không chỉ giúp bạn viết code "ngầu" hơn mà còn cải thiện khả năng bảo trì và mở rộng ứng dụng.

✔ Một ví dụ thực tế:

Giả sử bạn xây dựng một website và phải sử dụng cùng một đoạn HTML cho phần footer:

<div class="footer">
    <p>Contact us at: congquynguyen@gmail.com</p>
</div>
Enter fullscreen mode Exit fullscreen mode

TrÆ°á»›c DRY:
Bạn copy-paste đoạn HTML này vào m�i trang. Lỡ email thay đổi? Hoặc đó là một đoạn code dài ơi là dài ? Bạn phải chỉnh sửa từng trang. Quá tốn công!

Sau DRY:
Sử dụng một tệp template hoặc component tái sử dụng:

<include src="footer.html"></include>
Enter fullscreen mode Exit fullscreen mode

Bây giá»? chỉ cần sá»­a má»™t tệp duy nhất khi có thay đổi. Ä?Æ¡n giản hÆ¡n nhiá»?u, đúng không?


Lợi ích khi áp dụng DRY

  • Dá»… bảo trì hÆ¡n: Sá»­a má»™t chá»— thay vì "sá»­a toàn cầu".
  • Code gá»?n gàng: Giảm "sá»± lá»™n xá»™n" và tăng Ä‘á»™ Ä‘á»?c hiểu.
  • Ã?t lá»—i hÆ¡n: Má»—i thay đổi Ä‘á»?u được áp dụng nhất quán.

Thách thức khi thực hiện DRY

  • Over-DRY: Ä?ừng cố DRY má»?i thứ! Ä?ôi khi, chia nhá»? quá mức sẽ làm code phức tạp và khó hiểu hÆ¡n.
  • Lá»±a chá»?n sai ngữ cảnh: DRY chỉ hiệu quả khi áp dụng đúng lúc, đúng chá»—. Nếu không, nó sẽ trở thành má»™t "cÆ¡n ác má»™ng bảo trì."

Tóm lại

Nguyên tắc DRY là một trong những "bí kíp" giúp bạn trở thành lập trình viên chuyên nghiệp. Tuy nhiên, hãy nhớ rằng cân bằng là chìa khóa. Không phải lúc nào DRY cũng là giải pháp tốt nhất, nhưng khi áp dụng đúng, nó sẽ giúp bạn tiết kiệm cả th�i gian và năng lượng! 💪

Top comments (0)