DRY原則とは?重複を避けるプログラミングの法則

IT用語を分かりやすく噛み砕いて、初心者でもスムーズに仕事の会話に参加できるように解説します。このIT用語辞典の目的は「会話についていく」であり、情報レベルは基礎中の基礎の会話についていけるレベルです。これさえ見れば仕事の会話は怖くない! IT用語辞典

ざっくりと

  • 重複を避ける
  • 変更を容易にする
  • バグを減らす

DRY原則とは、重複を避けることです。

概要説明

DRY原則とは重複を避けるである。なぜなら重複するコードや情報が多いと、変更が困難になるから。

例えば同じコードが複数箇所にあると、一箇所を修正しても他の箇所が修正されないである。そしてエラーの原因になる。

つまり変更が容易でエラーを減らすである。だから効率的なプログラミングを促進する。

職業職種

ソフトウェア開発者

DRY原則は、効率的なコーディングである。なぜなら、重複を減らし変更を容易にするから。例えば新しい機能の追加。

プロジェクトマネージャー

DRY原則は、プロジェクトの流れをスムーズにするである。なぜなら、バグの減少と開発スピードの向上から。例えば納期の短縮。

テストエンジニア

DRY原則は、テストの効率を高めるである。なぜなら、コードの整合性を保ちやすいから。例えば正確なテストの実施。

DRY原則は、名前の由来は英語の”Don’t Repeat Yourself”(自分自身を繰り返さない)です。

類似語

OAOO原則

OAOO(Once And Only Once)は、同じコードを一度しか書かないである。なぜなら、重複するコードが多いとメンテナンスが困難になるから。例えば、一箇所の変更が他の場所に影響を及ぼす。

コードのリファクタリング

コードのリファクタリングは、コードの構造を改善するである。なぜなら、読みやすく保守しやすいコードにするため。例えば、無駄なコードを削除や簡潔な表現にする。

モジュラー設計

モジュラー設計は、システムを小さな部品(モジュール)に分割するである。なぜなら、各部品が独立しているため変更が容易になるから。例えば、一つの部品を変更しても他の部品に影響を与えない。

反対語

冗長性

冗長性は、同じ情報やコードの重複である。なぜなら、効率が悪くメンテナンスが困難になるから。例えば、一箇所を変更すると他のすべても変更しなければならない。

コピーアンドペーストプログラミング

コピーアンドペーストプログラミングは、同じコードを何度も使うことである。なぜなら、修正時に一箇所を見逃すとバグが発生するから。例えば、同じコードが100箇所にある場合、100箇所とも修正する必要がある。

重複設計

重複設計は、同じ機能が複数の場所に存在することである。なぜなら、同じ機能の変更が困難になるから。例えば、同じ機能を持つ部分があちこちにあると、変更が大変になる。

会話例

プロジェクトチームの会議

「このコード、何度も重複してるね。DRY原則にしたがって修正する?」
「いいね!それで変更が楽になるよ。」

開発者同士のコードレビュー

「この部分、DRY原則に違反していない?」
「確かに。これを修正して、コードをきれいにしよう。」

新人研修中の指導

「DRY原則って何ですか?」
「同じ情報を何度も書かないようにするルールだよ。それで、後で変更する時に楽になるんだ。」

注意点

DRY原則を使用する時の注意点は過度な抽象化である。なぜならば、極端に重複を避けすぎるとコードが複雑になりがちだからだ。

例えば、少しの違いも共通化しすぎると、理解しにくくなる。そして、後から変更が困難になる。だから、バランスが重要。

DRY原則とOAOO原則は、間違えやすいので注意しましょう。

DRY原則は同じ情報やコードを重複させないことです。

一方、OAOO原則は、特にコードの中で同じことを一度しか書かないことです。

当IT用語辞典の目的は「会話についていく」であり、情報レベルは基礎中の基礎で、どこよりもわかりやすくなるように、例えを入れたりしてますが、逆にわかりにくかったらごめんなさい。さらに正確性、具体性、最新性を求めてる方は、もっとググってください。
YouTubeのチャンネル登録はこちら!!
ポチッと応援よろしくね!!
開発・運営ランキング にほんブログ村 IT技術ブログ IT技術情報へ
記事を書いてる人
デプロイ太郎

IT業界の下層に長くいすぎたのかも知れないおじさんです。プロフィールまで見てくれてるのなら、ブログのブックマークとYouTubeのチャンネル登録とX(旧Twitter)のフォローお願いします。

ネットの裏側を見せるYouTube運営中!!

デプロイ太郎のSNSを見てみる!!
IT用語辞典
デプロイ太郎のSNSを見てみる!!

コメント