IT用語: DRY原則とは|「繰り返しを避けよ」というプログラミングの鉄則
Don't Repeat Yourself(DRY)原則の意味と、WET(重複だらけ)なコードが引き起こす問題と対処法を解説。
DRY原則とは
DRY(Don’t Repeat Yourself)は「同じ知識をコードの複数の場所に重複させるな」という原則です。書籍『達人プログラマー』で提唱されました。同じロジックが複数箇所に散らばっていると、仕様変更の際にすべての場所を修正しなければならず、修正漏れがバグの温床になります。
WETなコードの問題
DRYの対義語はWET(Write Everything Twice / We Enjoy Typing)です。例えば、税込み価格の計算式が画面表示・PDF生成・メール送信の3箇所にコピーされていると、税率変更時に3箇所すべてを修正する必要があります。
DRY化の方法
- 共通ロジックを関数・メソッドに抽出する
- 定数を1か所で定義して参照する
- 設定値をConfigファイルにまとめる
ただしDRYを過度に適用すると「WRONG(Write Really Obscure Nesting Generally)」なコードになります。読みにくい抽象化より、適切な重複の方が良い場合もあります。
関連する用語 (プログラミング)
全33件を見るIT用語: 依存性の注入(DI)とは|テストしやすいコードを書く設計原則
クラスが依存するオブジェクトを外部から渡す「依存性の注入(Dependency Injection)」の概念とテスタビリティへの効果を解説。
SSG(静的サイトジェネレーター)
ビルド時にすべてのページをHTMLとして事前生成する手法。サーバーが不要なため高速・安全・低コストで、ブログ・ドキュメントサイト・ランディングページに最適。
GraphQL
FacebookがRESTの課題を解決するために開発したAPIクエリ言語。クライアントが必要なデータの形を宣言的に指定して取得でき、オーバーフェッチ・アンダーフェッチを解消する。
SSR(サーバーサイドレンダリング)
Webページをサーバー側でHTMLとして生成してからクライアントに送信する手法。SPAのSEO問題を解決し、初期表示を高速化できる。Next.js・Nuxt.jsで実装されることが多い。
モノレポ(Monorepo)
複数のプロジェクトやパッケージを1つのGitリポジトリで管理する手法。コードの共有・一貫したCI/CD・依存関係の統一が容易になる。Turborepo・Nx・Yarnワークスペースで実装される。
PWA(プログレッシブウェブアプリ)
Service WorkerやWeb App Manifestを使い、Webアプリにネイティブアプリに近い体験を提供する技術。オフライン動作・ホーム画面への追加・プッシュ通知が実現できる。