Open2

DRY原則について

まさぴょんまさぴょん

DRY(Don't Repeat Yourself)原則

DRYとは、Andy HuntとDave Thomasが書籍「達人プログラマー―システム開発の職人から名匠への道」で提唱したソフトウェア開発原則です。
書籍の中で、DRY原則は以下のように定義されています。

すべての知識はシステム内において、単一、かつ明確な、そして信頼できる表現になっていなければならない。

この定義の中で重要なのは「知識」という表現です。

DRYとは、「知識の重複を許さない」という原則であり、
それは「コードの重複を許さない」ことを意味しません。

では、ここでいう「知識」とは一体どのようなものなのでしょうか?

コードを書いている中で現れる共通部分は以下の二つに分けることができます。

  1. 再利用可能な関数として抽象化されるべきもの(= DRY原則に従うべき重複コード)
  2. 現時点でたまたま共通になっているだけのもの(= DRY原則に従うべきではない重複コード)

DRY原則を適用させるべきアプリケーションの知識とは、
「呼び出しのコンテキストによらず、将来にわたって同じ動作が期待されるもの」であると考えられます。これは「共通の知識とは、むしろ定義であり、処理のプロセスではない」と言い換えることもできるでしょう。

参考・引用

https://zenn.dev/chillnn_tech/articles/super-dry-code

https://qiita.com/yatmsu/items/b4a84c4ae78fd67a364c