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

第16章:AI導入前提の学び方(Copilot/Codexを味方に🤖💡)

この章は「SoCを“知ってる”から“できる”へ」進むために、AIを相棒として使い倒す回だよ〜😊✨ (ポイント:AIに丸投げじゃなくて、あなたが設計者で、AIは助手ね💪💖)


16-1. この章のゴール🎯✨

  • SoCの“分け方”を、AIと一緒に手順化できるようになる🧭🤖
  • 「案を複数出させて比較する」癖がつく🧠🧩
  • AIの提案を採用する前に、**地雷チェック✅**できるようになる💣➡️🛡️

16-2. まずは整理:AIは3種類の働き方があるよ🧑‍🤝‍🧑🤖✨

soc_cs_study_016_ai_partner

A) エディタ内の相棒(補完・チャット)📝💬

  • コード補完+チャットで「ここどう分ける?」を即相談できるタイプ✨
  • Copilot Chatは、Visual Studio/VS Codeなど複数IDEで使えるよ〜💡 (GitHub Docs)
  • Visual Studio側でもCopilotが統合されてきてる(最新の体験が統合…って明記されてる)📌 (Visual Studio)

B) リポジトリ上の相棒(レビュー・提案)🔍✅

  • 「PRの差分見て、責務混ざってない?」みたいなレビュー向き🧠
  • GitHub側のCopilotは、周辺のコードや開いてるファイル等を“文脈”として見て提案する仕組みが説明されてるよ📚 (GitHub)

C) エージェント(タスクを任せる)🧑‍💻➡️🤖🏃‍♀️

  • Copilot coding agentは、バグ修正や小機能追加、テスト増強、ドキュメント更新などを自走でやる想定🛠️✨ (GitHub Docs)
  • OpenAIのCodexも「クラウドのサンドボックスで、リポジトリ入りの環境で並列タスク」みたいな方向に進んでるよ🧰☁️ (OpenAI)
  • 直近だと GPT-5.2-Codex(2025/12/18発表)も出てて、長い作業・大規模変更(リファクタや移行)を強化って書かれてる🧠🔧 (OpenAI)

ざっくり: 小さく相談=チャット差分の確認=レビュー面倒作業=エージェント って使い分けると最強だよ💪🤖✨


16-3. SoCの学習でAIが一番役立つ瞬間💖

①「責務が混ざってる場所」を見つける🔍😵‍💫➡️😄

人間って、慣れてくると混ざりに鈍感になるの…🥲 AIにはこう聞くのが強いよ👇✨

次のコードをSoC観点でレビューして。
- UI/業務/データアクセス(外部)が混ざっている箇所を列挙
- それぞれ「なぜ混ざりやすいか」を一言で
- まず切り出すならどこからが安全か(順番)
(コードは省略せず読む前提でOK)

コツ🍯

  • 「列挙して」→見落とし減る✅
  • 「なぜ」→理解が深くなる🧠
  • 「順番」→現実のリファクタになる🔧

②「分け方の案」を複数出させる🧩🧠✨

SoCって“正解1個”じゃないから、比較が大事💖

この機能をSoCで分離したい。3案出して。
各案について:
- 分ける単位(クラス/フォルダ/層)
- 依存の向き(どこがどこを参照するか)
- 長所/短所
- 初心者が実装しやすい順のおすすめ

ここでの狙いは「AIに決めさせる」じゃなくて、 あなたが“納得して選ぶ”材料を集めることだよ😊🧡


③「最小の一歩」を設計させる(いきなり大改造しない)🐣➡️🐤

AIは放っておくと、急に壮大なアーキテクチャ出しがち🤣💦 だから最初から釘を刺す!

大改造は禁止。今の挙動を保ったまま、最小のリファクタだけ提案して。
条件:
- 変更は「メソッド抽出」→「クラス抽出」まで
- ファイル追加は最大2個まで
- public APIは変えない
- 単体テストを1本だけ追加
出力は手順(1,2,3...)と、各手順の目的を一言で。

これ、めちゃくちゃ効くよ🥹✨ “やりすぎAI”を防げる🛡️


16-4. 分離したい時の「プロンプト型」テンプレ🧰💖

SoCのリファクタ相談は、だいたいこの形が強いよ👇

(1) 現状:何がどこに混ざってるっぽい (2) ゴール:どこを分離したい(UI/業務/外部) (3) 制約:変えたくないもの(挙動、public API、期限…) (4) 受け入れ条件:成功の定義(テスト、可読性、依存の向き)

テンプレ(そのまま使ってOK)👇

【現状】(コード貼る)
【ゴール】UI/業務/外部の境界を作りたい
【制約】挙動維持、変更は最小、差分は小さく
【受け入れ条件】
- UIからDB直呼びが消える
- 業務ロジックが純粋メソッド中心になる
- 単体テストが最低1本通る
まず、責務の一覧と境界線案を出して。

16-5. “案を複数出させる”テク🎭✨(AIの使いどころNo.1)

テク1:役割を分けて比較させる👩‍⚖️🧑‍🔬🧑‍🏫

あなたは3人のレビューアです:
1) 保守性重視 2) 初心者向け重視 3) 変更最小重視
同じコードに対して、各視点で分離案を出してから、最後に妥協案をまとめて。

テク2:ダメ案も出させる(地雷回避)💣➡️✅

この分離で「やりがちな失敗パターン」を3つ挙げて。
それぞれに、失敗の兆候(サイン)と回避策も。

16-6. AIの提案を採用する前のチェック✅🧠✨(超重要)

AIのコード、動いても“設計として死ぬ”ことあるからね…😇💥 最終ジャッジはあなた💪💖

SoCチェック(最低これだけ)🧩✅

  • UIが業務ルールを知らない(表示と呼び出しだけ)🖥️➡️📞
  • 業務が外部都合を知らない(SQL/HTTP/ファイル形式が出てこない)🧠🚫
  • 外部は差し替え可能(interface越し・入口が1個)🔌✨

“未来の自分が泣く”チェック😭➡️😄

  • 命名が“業務の言葉”になってる?(CalculateDiscountみたいな)🧠🗣️
  • 引数にUI部品(TextBoxなど)が入ってない?🧨
  • DTO/VM/Entityの混線がない?(詰め替えルールがある?)📦🔄

AI時代の安全チェック🔐✅

  • 秘密情報を貼ってない?(鍵/トークン/接続文字列)🙅‍♀️
  • 生成物が“どこから来たか不明な巨大コピペ”になってない?(ライセンス/出典不明の危険)⚠️
  • テスト or 手動確認の手順がある?🧪🧡

16-7. ミニ演習🎮✨「フォーム地獄をAIで“手順化”して直す」

お題🧯🔥

  • ボタン押下に、入力チェック、割引計算、DB保存が全部入ってる(ありがち)😵‍💫

手順(AIと一緒にやる)🪜🤖

  1. 責務の棚卸し(UI/業務/外部の3分類)📦
  2. 境界線の宣言(UI→UseCase→Repository)🧱
  3. 最小の抽出(メソッド抽出→クラス抽出)✂️
  4. テスト1本だけ(業務の中心に刺す)🧪
  5. 差分レビュー(混ざりが戻ってないか)🔍✅

AIプロンプト例👇

このイベントハンドラをSoCで分離したい。
まず、責務を UI / 業務 / 外部 に分類して一覧化して。
次に、最小の変更で
- UseCaseクラス(業務の入口)
- Repositoryインターフェース(外部の差し替え口)
を作る手順を出して。
最後に、業務だけをテストするxUnitテストを1本作って。

16-8. よくある詰まりポイントQ&A😵‍💫➡️😄

Q1. AIが“分けすぎ”て、フォルダが増殖する…📁📁📁

A. 最初に制約で縛ろう!これが効く👇

  • 「新規ファイル最大2個」
  • 「層は3つまで」
  • 「今日はUIと業務だけ分ける」

Q2. AIが作るinterfaceが抽象的すぎる…🌀

A. “外部の都合を隠す”方向に寄せよう😊

  • 良い:IOrderRepository.Save(order)
  • 微妙:IDataProvider.ExecuteSql(sql)(SQLが漏れてる)

Q3. AIの提案、動くけど読みにくい…🤯

A. 「読みやすさレビュー」を別で頼むと改善しやすいよ💖

今の差分を「初心者が読んでも追えるか」観点でレビューして。
- 命名
- メソッドの長さ
- 依存の向き
- コメントが必要な箇所
を指摘して、改善案も。

16-9. まとめ🧁✨(ここだけ覚えて帰ろう)

  • AIは 相談(チャット)/確認(レビュー)/委任(エージェント) で使い分け🤖✨ (GitHub Docs)
  • SoCは“正解1つ”じゃないから、3案出させて比較が超強い🧠🧩
  • 採用前は SoCチェック✅+安全チェック🔐 を必ず通す

次章(共通リソース集🧰🌸)に行くと、用語・テンプレ・プロンプトを“いつでも引ける形”でまとめて、教材として超使いやすくするよ〜📚✨