メインコンテンツまでスキップ

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を “手順”として身につける(ここが一番伸びる!)😊

  • 流れ(これで迷わない👍)

    1. 重複を見つける(種類ラベル付け)🏷️
    2. 一番効く重複から消す(メソッド抽出→引数化)✂️
    3. ルールの置き場所を整える(定数・小さな型)📦💎
    4. テストで守る(最小でOK)🧪
    5. AIで棚卸し(追加の重複候補チェック)🤖
    6. “消さなかった重複”も理由を書いてOKにする📝✨(判断力が育つ)
  • 成果物:

    • 改善前/後の差分(Git)📌
    • 「消した重複3つ」と「残した重複1つ」の説明メモ📝💕

必要なら、各章の「サンプル題材(ミニアプリ)」を1つに統一して、章を進むほどコードが育つ構成(最初はWETで、最後にスッキリ✨)の形にもできます😊🌸