DRY(重複排除)アウトライン:8章構成 📚🌸
1章:DRYってなに?「コピペがダメ」だけじゃないよ 😺🧻
- ゴール:DRY=「同じ知識(ルール)を複数に持たない」を体感する✨
- よくある例:税率・送料・割引・入力チェックがあちこちに散る問題💦
- ミニ演習:コピペだらけの小アプリを触って「どこ直す?」を言語化📝
- AI活用:Copilotに「重複っぽい箇所を列挙して」って頼む(鵜呑みにしない)🤖
2章:重複の種類を見分けよう 👀🔍(コピペ/条件分岐/データ/例外処理)
-
ゴール:「何が重複か」を分類できるようになる😊
-
4分類:
- コピペ重複(同じ処理)📄
- ルール重複(同じ条件・同じ計算)🧮
- データ重複(同じ文字列・同じID・同じ列挙)🏷️
- エラー重複(同じtry/catch、同じログ)🚨
-
ミニ演習:サンプルコードに付箋を貼る気持ちで「重複ラベル」を付ける🏷️✨
3章:いちばん効く!「メソッド抽出」でDRYは8割いける ✂️🧩
-
ゴール:小さく安全に“まとめる”基本技を覚える💪
-
扱うこと:
- メソッド抽出/引数化(違いだけ渡す)
- 早期returnで分岐の重複を減らす🚪
- 命名のコツ(何をしてるかが読める名前)📛
-
演習:重複3か所→1メソッドにまとめる(動作は変えない)✅
-
AI活用:リファクタ案を出させて、最後は自分で読みやすさチェック😌🧠
4章:値を散らさない!定数・設定・ルールの「置き場所」問題 🗃️📌
-
ゴール:「同じ文字列・数値・ID」を一箇所に集められるようにする✨
-
扱うこと:
- 定数(const / static readonly)と命名のしかた 🧊
- 設定ファイル化(appsettings等)との境界(何を設定にする?)⚙️
- “魔法の数字/文字列”を消す🪄
-
演習:エラーメッセージ、ステータス文字列、上限値を一箇所化📦
5章:条件分岐のDRY(同じifが増える地獄を止める)🌪️➡️🌿
-
ゴール:「同じ条件チェック」が増える前に整理できるようにする😊
-
扱うこと(超入門寄り):
- ガード節でスッキリ(入口で弾く)🚧
- switch式やパターンで見通しUP(読みやすく)🧠
- “条件と処理”をセットで近づける(散らさない)📍
-
演習:同じifが3回出るコードを、1回だけにする🎯
6章:型でDRY(住所・金額・期間を「値オブジェクトっぽく」する)🧱💎
-
ゴール:「データ+ルール」をセットで1つにまとめる感覚をつかむ✨
-
扱うこと:
- record(または小さなクラス)で「不正な状態を作りにくく」する🛡️
- バリデーション重複(同じチェック)を型の中に寄せる✅
- ToString/表示用変換の重複もまとめる🖨️
-
演習:金額(負数NG・通貨桁)を型にして、チェックの散らばりを消す💰
7章:重複を“検知して戻す”仕組み(テスト+AI+IDE)🧪🤖🛠️
-
ゴール:DRYを「気合」じゃなくて「仕組み」にする😊
-
扱うこと:
- 変更で壊れてないことをテストで守る(超ミニでOK)✅
- AIに「同じ意味の処理が複数ある?」を聞いて棚卸し🧺
- VS(Copilot含む)での見直し習慣:小さく直す→すぐ実行🔁 (Microsoft Learn)
-
演習:重複削除→テスト追加→安心してリファクタ、の3点セット🌟
第8章:DRYの落とし穴(やりすぎ注意!)🐙⚠️
-
ゴール:「共通化のやりすぎ」を避ける判断ができるようになる😊
-
入れる内容(短めでOK✨)
- 「似てる」≠「同じルール」問題😵
- “共通Util地獄”にならない置き方🗃️
- YAGNIとDRYのバランス(未来の自分を助ける方へ)🧩
- ✅ 判断チェックリスト(これがあると強い!)📋✨
-
ミニ演習:
- 「これは共通化する?しない?」を3問くらいクイズ形式🧩😆
第9章:まとめプロジェクト(DRY改善を1周やる)🎯🛠️✨
-
ゴール:DRYを “手順”として身につける(ここが一番伸びる!)😊
-
流れ(これで迷わない👍)
- 重複を見つける(種類ラベル付け)🏷️
- 一番効く重複から消す(メソッド抽出→引数化)✂️
- ルールの置き場所を整える(定数・小さな型)📦💎
- テストで守る(最小でOK)🧪
- AIで棚卸し(追加の重複候補チェック)🤖
- “消さなかった重複”も理由を書いてOKにする📝✨(判断力が育つ)
-
成果物:
- 改善前/後の差分(Git)📌
- 「消した重複3つ」と「残した重複1つ」の説明メモ📝💕
必要なら、各章の「サンプル題材(ミニアプリ)」を1つに統一して、章を進むほどコードが育つ構成(最初はWETで、最後にスッキリ✨)の形にもできます😊🌸