「.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
定義を忘れるためメモ。
恐らく前者(コードを対象としているという主張)が正しい。
単に「コードを重複させない」という原則ではなく、
なども対象になっており、
「ソフトウェア開発全体において情報を重複させない」
という原則。
転じて、プログラムコード中で同じ(ような)動作をするコードを何度も書かずに、
一度書いたものを再利用するようにすべきとする意味で用いられることもあるが、
こちらは本来は“Once and Only Once”(OAOO)原則と呼ばれるものである。
2つのコンテキストがある。
小規模なスクラップ・アンド・ビルド案件が、大規模化して維持・保守が必要になった場合に、
密結合なDryの状態で開発されていたら、標準化・共通化などによるコントロールが必要になった時点で、
対応できなくなるため、Open棟梁導入案件でも、案件毎に、更に追加のレイヤが追加される。
観測範囲で、Webやフリーランス界隈では、Dryが尊ばれている様に見えるが、
下記の「Dryで書いたものが負債になっていく。」という発言もあり、
密結合のデメリットを理解する必要がある。
DRY、よかれと思って書かれたものが負債になってることのほうが多くないですか
本当に共通化できるモジュールを発見するのは、技術的な分解点とドメイン理解の双方がないと正しく行うことはできない
抽象化のコストがコードを重複させるコストを上回らない限り、必ず抽象化する。