+7

Thuật ngữ IT #15: Don't repeat yourself - DRY

Trong bài này mình sẽ giới thiệu cho các bạn về một thuật ngữ trong lĩnh vực IT rất quan trọng, đó là "Don't repeat yourself" hay còn được viết tắt là DRY. Đây là một nguyên tắc mà mọi lập trình viên đều nên biết và áp dụng vào công việc hàng ngày của mình.

1. Don't repeat yourself (DRY)

1.1. Khái niệm

"Don't repeat yourself" hay DRY là một nguyên tắc trong lập trình, đặc biệt là trong lĩnh vực công nghệ thông tin, nhằm ngăn chặn việc lặp lại thông tin. Theo nguyên tắc này, mọi hình thức của sự lặp lại thông tin đều có thể làm tăng khó khăn trong việc thay đổi và giảm đi sự minh bạch, dẫn đến nguy cơ xảy ra sự không nhất quán. Vì vậy, thông tin không nên được lặp lại.

1.2. Ứng dụng

Nguyên tắc DRY được Andy Hunt và Dave Thomas đưa ra trong cuốn sách của họ "The Pragmatic Programmer". Họ đã áp dụng nguyên tắc này rất rộng rãi, từ lược đồ cơ sở dữ liệu, kế hoạch kiểm thử, hệ thống xây dựng, cho đến tài liệu.

Khi nguyên tắc DRY được áp dụng một cách hiệu quả, bất kỳ thay đổi nào đối với một yếu tố nào đó trong hệ thống sẽ không dẫn đến việc thay đổi các yếu tố không liên quan về mặt logic. Hơn nữa, các yếu tố có liên quan về mặt logic sẽ được thay đổi một cách thống nhất và dự đoán được, do đó, những thay đổi này sẽ được đồng bộ hóa.

1.3. So sánh với nguyên tắc Once and Only Once (OAOO)

Nguyên tắc DRY khác với nguyên tắc Once and Only Once (OAOO) ở chỗ nó đề cập đến thông tin cần thiết cho ứng dụng (thông thường là thông tin cấu hình), trong khi OAOO đề cập đến hành vi chức năng của mã.

Ví dụ, DRY khẳng định rằng vị trí của một tập hợp các file nên được lưu trữ ở một nơi duy nhất trong ứng dụng, nhưng nó không quan tâm đến số lần viết mã để trích xuất dữ liệu từ các file này ở các nơi khác nhau trong ứng dụng. Ngược lại, nguyên tắc OAOO yêu cầu rằng mã để trích xuất dữ liệu từ file chỉ được viết một lần, nhưng nó không quan tâm đến số lượng vị trí mà các file này được đặt trong ứng dụng.

2. Trường hợp không nên áp dụng DRY

Mặc dù nguyên tắc DRY rất hữu ích, nhưng cũng có những trường hợp mà việc áp dụng nó không phải lúc nào cũng mang lại lợi ích. Dưới đây là một số ví dụ:

  • Trong một số trường hợp nhỏ, việc thiết kế dựa trên DRY có thể tốn nhiều công sức hơn so với việc duy trì hai bản sao riêng biệt của dữ liệu.
  • Việc áp dụng một cách mù quáng nguyên tắc DRY có thể làm giảm sự tham gia của cộng đồng trong các hoạt động như viết wiki.
  • Trong quản lý cấu hình và quản lý phiên bản, việc cho phép có các bản sao của cùng một mã không vi phạm nguyên tắc DRY.

3. Kết luận

Nguyên tắc "Don't repeat yourself" hay DRY là một trong những nguyên tắc quan trọng trong lập trình. Nó giúp chúng ta giảm thiểu sự lặp lại thông tin, làm tăng khả năng bảo dưỡng và cải thiện sự minh bạch của mã. Tuy nhiên, như mọi nguyên tắc khác, DRY cũng không nên được áp dụng một cách mù quáng mà cần phải cân nhắc kỹ lưỡng trong từng trường hợp cụ thể.

4. FAQs

  1. Don't repeat yourself (DRY) là gì?

    • DRY là một nguyên tắc trong lập trình, đặc biệt là trong lĩnh vực công nghệ thông tin, nhằm ngăn chặn việc lặp lại thông tin.
  2. DRY được áp dụng như thế nào?

    • Khi nguyên tắc DRY được áp dụng một cách hiệu quả, bất kỳ thay đổi nào đối với một yếu tố nào đó trong hệ thống sẽ không dẫn đến việc thay đổi các yếu tố không liên quan về mặt logic.
  3. DRY khác gì với Once and Only Once (OAOO)?

    • DRY đề cập đến thông tin cần thiết cho ứng dụng, trong khi OAOO đề cập đến hành vi chức năng của mã.
  4. Có trường hợp nào không nên áp dụng DRY không?

    • Có, ví dụ như trong một số trường hợp nhỏ, việc thiết kế dựa trên DRY có thể tốn nhiều công sức hơn so với việc duy trì hai bản sao riêng biệt của dữ liệu.
  5. DRY có tác dụng gì?

    • DRY giúp giảm thiểu sự lặp lại thông tin, làm tăng khả năng bảo dưỡng và cải thiện sự minh bạch của mã.

Hy vọng rằng qua bài viết này, các bạn đã hiểu rõ hơn về nguyên tắc DRY và cách áp dụng nó vào công việc lập trình của mình. Nội dung được tham khảo từ: https://ja.wikipedia.org/wiki/Don't_repeat_yourself


English Version

Hello there! Today, I'm going to introduce you to a super important term in the IT field, called "Don't repeat yourself," or DRY for short. This is a principle that every programmer should know and apply in their daily work.

1. Don't repeat yourself (DRY)

1.1. What is it?

"Don't repeat yourself," or DRY, is a principle in programming, especially in the field of information technology. It's all about preventing the repetition of information. According to this principle, any form of repeated information can make changes more difficult and reduce transparency, leading to the risk of inconsistency. So, information should not be repeated.

1.2. How is it used?

The DRY principle was introduced by Andy Hunt and Dave Thomas in their book "The Pragmatic Programmer." They applied this principle widely, from database schemas, test plans, build systems, to documentation.

When the DRY principle is effectively applied, any change to any element in the system will not lead to changes in logically unrelated elements. Moreover, logically related elements will change in a unified and predictable way, so these changes will be synchronized.

1.3. How is it different from the Once and Only Once (OAOO) principle?

The DRY principle differs from the Once and Only Once (OAOO) principle in that it refers to the information necessary for the application (usually configuration information), while OAOO refers to the functional behavior of the code.

For example, DRY asserts that the location of a set of files should be stored in only one place in the application, but it doesn't care about the number of times code is written to extract data from these files in different places in the application. In contrast, the OAOO principle requires that the code to extract data from the file is written only once, but it doesn't care about the number of locations these files are placed in the application.

2. When not to apply DRY

Although the DRY principle is very useful, there are cases where applying it doesn't always bring benefits. Here are some examples:

  • In some small cases, designing based on DRY can take more effort than maintaining two separate copies of the data.
  • Blindly applying the DRY principle can reduce community participation in activities like writing wikis.
  • In configuration management and version control, allowing copies of the same code does not violate the DRY principle.

3. Conclusion

The "Don't repeat yourself" or DRY principle is one of the important principles in programming. It helps us reduce the repetition of information, increase maintainability, and improve the transparency of the code. However, like all principles, DRY should not be applied blindly but should be carefully considered in each specific case.

4. FAQs

  1. What is Don't repeat yourself (DRY)?

    • DRY is a principle in programming, especially in the field of information technology, aimed at preventing the repetition of information.
  2. How is DRY applied?

    • When the DRY principle is effectively applied, any change to any element in the system will not lead to changes in logically unrelated elements.
  3. How is DRY different from Once and Only Once (OAOO)?

    • DRY refers to the information necessary for the application, while OAOO refers to the functional behavior of the code.
  4. Are there any cases where DRY should not be applied?

    • Yes, for example, in some small cases, designing based on DRY can take more effort than maintaining two separate copies of the data.
  5. What is the benefit of DRY?

    • DRY helps reduce the repetition of information, increase maintainability, and improve the transparency of the code.

I hope that through this article, you have a better understanding of the DRY principle and how to apply it to your programming work.


日本語版

この記事では、IT分野で非常に重要な用語、"Don't repeat yourself"、略してDRYについて紹介します。これは、すべてのプログラマーが知っておくべき原則であり、日々の仕事に適用するべきものです。

1. Don't repeat yourself (DRY)

1.1. 概念

"Don't repeat yourself"、つまりDRYは、情報の繰り返しを防ぐためのプログラミングの原則です。この原則によれば、情報の繰り返しは、変更の難しさを増加させ、透明性を減少させ、一貫性のない状態を引き起こす可能性があります。したがって、情報は繰り返されるべきではありません。

1.2. 適用

DRYの原則は、Andy HuntとDave Thomasが彼らの本"The Pragmatic Programmer"で提唱しました。彼らはこの原則を、データベーススキーマ、テスト計画、ビルドシステム、ドキュメンテーションなど、広範に適用しました。

DRYの原則が効果的に適用されると、システム内のある要素に対する任意の変更は、論理的に関連性のない要素の変更を引き起こすことはありません。さらに、論理的に関連する要素は、一貫性を持って予測可能な方法で変更され、これらの変更は同期されます。

1.3. Once and Only Once (OAOO)原則との比較

DRY原則は、アプリケーションに必要な情報(通常は設定情報)について言及しているのに対し、OAOO原則はコードの機能的な振る舞いについて言及しています。

例えば、DRYはアプリケーション内の一箇所だけにファイルの集合の位置を保存するべきだと主張しますが、そのファイルからデータを抽出するためのコードをアプリケーションのいくつかの場所で何度も書くことについては関心を持ちません。逆に、OAOO原則は、ファイルからデータを抽出するためのコードは一度だけ書かれるべきだと要求しますが、それらのファイルがアプリケーション内のどの位置に配置されているかについては関心を持ちません。

2. DRYを適用すべきでない場合

DRY原則は非常に有用ですが、それを適用することが常に利益をもたらすわけではありません。以下にいくつかの例を挙げます。

  • 小さなケースでは、DRYに基づいた設計は、データの二重コピーを維持するよりも多くの労力を必要とすることがあります。
  • DRY原則を盲目的に適用すると、ウィキの執筆などのコミュニティ活動への参加が減少する可能性があります。
  • 設定管理やバージョン管理では、同じコードのコピーを許可することは、DRY原則を違反するものではありません。

3. 結論

"Don't repeat yourself"、つまりDRYは、プログラミングの重要な原則の一つです。これは、情報の繰り返しを減らし、保守性を向上させ、コードの透明性を改善するのに役立ちます。しかし、他のすべての原則と同様に、DRYも盲目的に適用するべきではなく、各具体的なケースで慎重に考慮する必要があります。

4. FAQs

  1. Don't repeat yourself (DRY)とは何ですか?

    • DRYは、情報の繰り返しを防ぐためのプログラミングの原則です。
  2. DRYはどのように適用されますか?

    • DRY原則が効果的に適用されると、システム内のある要素に対する任意の変更は、論理的に関連性のない要素の変更を引き起こすことはありません。
  3. DRYはOnce and Only Once (OAOO)と何が違いますか?

    • DRYは、アプリケーションに必要な情報について言及していますが、OAOOはコードの機能的な振る舞いについて言及しています。
  4. DRYを適用すべきでない場合はありますか?

    • はい、例えば、小さなケースでは、DRYに基づいた設計は、データの二重コピーを維持するよりも多くの労力を必要とすることがあります。
  5. DRYは何のためにありますか?

    • DRYは、情報の繰り返しを減らし、保守性を向上させ、コードの透明性を改善するのに役立ちます。

この記事を通じて、DRY原則とそのプログラミングにおける適用方法についてより深く理解できたことを願っています。

Mình hy vọng bạn thích bài viết này và học thêm được điều gì đó mới.

Donate mình một ly cafe hoặc 1 cây bút bi để mình có thêm động lực cho ra nhiều bài viết hay và chất lượng hơn trong tương lai nhé. À mà nếu bạn có bất kỳ câu hỏi nào thì đừng ngại comment hoặc liên hệ mình qua: Zalo - 0374226770 hoặc Facebook. Mình xin cảm ơn.

Momo: NGUYỄN ANH TUẤN - 0374226770

TPBank: NGUYỄN ANH TUẤN - 0374226770 (hoặc 01681423001)

image.png


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí