- 「Don’t Repeat Yourself」の略で、プログラムの中で同じ処理や情報を二度書かないというルールのことだよ。
- コピー&ペーストを避けて、似たようなコードを一つの「部品(関数)」にまとめる役割があるんだ。
- これを守ると、修正が必要になった時に一箇所直すだけで全体に反映されるから、ミスが激減するね。

【深掘り】これだけ知ってればOK!
プログラミングにおいて「コピー&ペースト」は、バグ(不具合)を生む最大の原因の一つです。例えば、消費税の計算式を5箇所にコピペしていたとします。税率が変わった時、5箇所すべてを完璧に修正しなければなりません。もし1箇所でも修正を忘れると、そこだけ計算が狂ってしまいます。DRY原則に従い、計算式を1つの「関数」として定義しておけば、その関数の中身を変えるだけで、システム全体の計算が正しく更新されます。
会話での使われ方

このコード、あちこちに同じロジックが散らばってるから、リファクタリングでDRYにしておいて。




コピペで機能追加するのは楽ですけど、DRY原則に反するので後々の保守が大変になりますよ。




ここは将来的に変更される可能性が高い値なので、定数として定義してDRYを守りましょう。
【まとめ】3つのポイント
- 秘伝のタレのレシピ:レシピ(処理)が一箇所に書いてあれば、誰が作っても同じ味が出せる
- 修正の手間を削減:変更作業が「5回のコピペ修正」から「1回の定義変更」になる
- バグの予防:「直し忘れ」というヒューマンエラーを仕組みで防ぐ
よくある質問
- QDRY原則はいつ使うのがベストですか?
- Aコードを書いている最中に「あ、この処理さっきも書いたな」と思って、コピー&ペーストをしようとした瞬間が、DRY原則を適用すべきタイミングです。
- QDRY原則を失敗させないコツはありますか?
- A偶然似ている処理と本質的に同じ処理を区別することです。今は同じでも、将来別々に変更される可能性があるものは、あえて分け(WET)ておく判断も必要です。
- QDRY原則の具体例は何ですか?
- ACSSで同じスタイルをクラス化する、同じ計算処理を関数化する、消費税率などの固定値を定数として定義するなどが代表的です。
- QDRY原則の対義語はありますか?
- AWET(Write Everything Twice / We Enjoy Typing)という言葉があります。すべてを二度書く、タイピングを楽しむ(無駄な記述)という皮肉が込められています。
この用語と一緒に知っておきたい用語
| 用語 | この記事との関連 |
|---|---|
| YAGNI原則 | DRYとYAGNIは共にコードの無駄を排除するための設計原則 |
| スパゲッティコード | DRY原則に従うことでスパゲッティコードの予防になる |
| キャメルケース | 統一された命名規則はDRY原則のコード可読性向上にも寄与する |
| 車輪の再開発 | 既存コードの再利用を促すDRY原則は車輪の再開発を防ぐ思想と重なる |


コメント