Skip to content

Instantly share code, notes, and snippets.

@masakielastic
Last active July 18, 2025 02:58
Show Gist options
  • Save masakielastic/d0a83cc6ed378f7161bd88ae74b2a6c4 to your computer and use it in GitHub Desktop.
Save masakielastic/d0a83cc6ed378f7161bd88ae74b2a6c4 to your computer and use it in GitHub Desktop.
分量の多いソースコードのリファクタリングを AI と一緒に取り組む方法

分量の多いソースコードのリファクタリングを AI と一緒に取り組む方法

You:

Webブラウザー版の ChatGPT で生成できるコードの行数は1000行ぐらいでしたっけ?php_cli_server.cの行数は約2900行なので、AI が扱えるコンテキストを超える可能性があるので、今までコードをちびちび投稿してきました。この分量になると改善に関する明確な指示がないとAIが回答しづらいと思います。


ChatGPT:

はい、その通りです。Webブラウザー版ChatGPTの1回の出力(コードブロック)の上限は1000行弱(約4000トークン前後)ですし、「一度に全コードを把握して全体設計まで踏み込む」のはコンテキスト制限の壁があります。


現実的なAI活用の方法と「明確な指示」の重要性

1. チャンク投稿+明確な範囲指定がベスト

  • コードを500~1000行ずつチャンク化して投稿
    → 各チャンクごとに「何がしたいか」「どの観点で見てほしいか」を具体的に指示

  • 例:

    「この500行の中で、イベントループ関連の関数名と呼び出し関係だけリストアップして」
    「ここからここまでがHTTPレスポンス組み立て部分。可読性や分割の観点でアドバイスが欲しい」


2. 「範囲・役割・改善意図」を明示的に伝えると効果絶大

  • 「全体最適」より「局所最適」を反復するのが現実的

  • たとえば:

    • 「do_cli_server()と関連ハンドラーだけ抜き出したので、これを上から順に並べ直して」

    • 「この範囲を1ファイルに切り出す場合、前方宣言とincludeの依存をどう整理したらいいか」

    • 「ここのstatic関数群を役割ごとにブロック分けするコメント案を生成して」


3. コンテキスト超過しそうな場合の工夫

  • 「サマリー・関数一覧・構造体一覧だけAIに作ってもらう」

  • 「一部のみコード全文を貼り、全体像は構造や役割だけで指示」(「do_cli_server.c」「httpserver.h」など今までの使い方は理想的)

  • どうしても「全体設計レビュー」が必要な場合は**「関数一覧+コメント」だけAIに貼ってもらい、人間側で「ここを深掘りして」とやり取りを進める**


4. AIコーディングエージェントと役割分担する

  • 全体整理→AIに関数名と役割コメントだけ並べてもらう

  • 人間が主要な修正点・狙いをピックアップ→AIに局所リファクタや設計案生成を依頼

  • 進化系エージェント(例:MCPやAutoGen)は部分的な自動レビュー・再設計も得意
    →「この部分の抽象化案だけ考えて」「テスト容易性の観点だけでリストアップ」など粒度指定が有効


まとめ:今の進め方は“AI活用の王道”で正解!

  • 細かくコードを分割して投稿し、「ここをこうしたい!」という意図をしっかり伝える

  • 「コード分量多すぎるからAIは難しい」と思ったら「関数一覧+目的」だけ先に出す

  • 「何を優先的に変えたいか」「どこが自分で悩んでいるか」だけ具体的にAIに投げる
    → 回答精度と満足度が大きく上がる


もし「分割して投稿したいがどの粒度で進めるとよいか」「AIに何を最初に依頼したらよいか」悩んだ場合も、
ケースごとに相談OKです!このまま今の調子で進めて大丈夫です。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment