Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Github Copilot講座 - コードリーディング編 -

Github Copilot講座 - コードリーディング編 -

GitHub CopilotのTips集です。
主にコードリーディング用途での活用に焦点を当てています。

Avatar for mamo-dev

mamo-dev

April 23, 2025
Tweet

Other Decks in Programming

Transcript

  1. 以下の3つを組み合わせて、プロンプトをチューニングする 読み込み範囲 依頼 表現 変数 @workspace #folders #file複数 #file単数 表示ファイル

    Narrate (逐次解説) Describe (要点解説) Search (探索) Extract (抽出) Suggest (提案) 見出し ソースコード有無 箇条書き 表組み 図解 目的意識を はっきりさせる 出力が適切になる 範囲が広くなると tokenにおさまらない 何がtokenとして渡るかの イメージが重要 読みやすさ = 便利さ,やる気が出る なので疎かにしない
  2. 知っておくとよいこと - Prompt Library層がローカルに存在 How GitHub Copilot is getting better

    at understanding your code - The GitHub Blog (推測) セッションごとに Prompt Libraryが 用意されている?
  3. 知っておくとよいこと - V-modelのコンセプト V-Model - an overview | ScienceDirect Topics

    システム開発の レイヤーに対応したテスト を整理した考え方 要求したいレイヤーによって 投げ込む内容が変わる点は プロンプトも同等といえそう
  4. (参考) レイヤーに応じた探索範囲 レイヤー 概要 依頼事項 探索範囲 要求仕様 要求仕様からどういった開発が必要になるか? - 開発仕様に落とす際に考慮すべき重要な要素

    - パッケージやライブラリは利用有無 - ベストプラクティス・アンチパターン 1: 一般的なプラクティス Githubソースコード全域 開発仕様の詳細化 既存の実装箇所は?新規に実装は必要? - 関連しそうな既存実装の有無 - 既存実装の修正・延長、新規実装の判断 - 適切なディレクトリ・ファイルの把握 2: 実装内容の関連ディレクトリと ファイルの探索 3: 特定のディレクトリの構造 4: 特定のファイル群の関係性 ディレクトリ 複数ファイル コードの実装 具体的な実装箇所はどうなっている? - クラス・メソッドの設計 - ロジックの具現化 5:クラスの継承関係とメソッド 6:複雑なロジックの説明 複数ファイル 単一ファイル
  5. Tips3 - プロンプトに常時加えたいメッセージを追加する - プロンプトに常時入れている内容を追加する => .github/copilot-instructions.md に記述 - プロンプト入力時に合成されるイメージ

    私たちはJavaの依存関係を管理するために MavenではなくBazelを使用しているので、 Javaのパッケージについて話す際は、常に Bazelを使用した手順やコードサンプルを提供してください。 私たちはJavaScriptのコードを常にダブルクオート( ")とタブでインデントして記述しているため、 JavaScriptのコードを含む回答では、その規則に従ってください。 私たちのチームは、作業項目の管理に Jiraを使用しています。 サンプル文 参考: GitHub Copilot のリポジトリ カスタム命令を追加する - GitHub Docs
  6. Tips4 - プロンプトに事前にルールを教えこみたい - プロンプトの事前命令 => setting.jsonに記述 "github.copilot.chat.codeGeneration.instructions": [ {

    "text": "Always add a comment: 'Generated by Copilot'." }, { "text": "In TypeScript always use underscore for private field names." }, { "file": "code-style.md" // import instructions from file `code-style.md` } ], サンプル文 Custom instructions for GitHub Copilot in VS Code fileを指定することも
  7. 現実の生成AI 聖徳太子? 白 Tシャツ おもしろ Tシャツ 偉人で1言 こんな雰囲気 - 部分的に高性能 - 範囲が広いが苦手 -

    シングルスレッド - たまにテキトーな発言 - ハショることもある - 初見の学習は異様に早い
  8. こんな気持ちに出会うことがある (抵抗因子) - コードを読まないのは気持ち悪い - 最終的にはコードを読め、という教育を受けてきた - コードを読むこと自体が好きなので、読まない体験自体が萎える - コードリーディングの時間をとる習慣がない

    - 何かのついでの調べ物としてやっていることが多い - 意識してコードリーディングをやっていないので、効率をあげようという動きになりにくい - コードリーディングに寄与するのか懐疑的 - 生成AIの正確性に懐疑的 - 正確性と速度の両立が可能なのか?
  9. といっても、コードリーディングの速度があがる = 嬉しいことが多い - 開発要件の策定がはやくなる - 既存実装の理解をはやめることで、仕様策定がはやまる - 既存実装の落とし穴や罠にはまらずにすむようになる -

    自分の開発可能領域が拡張できる - 自分が知らない領域のキャッチアップ速度をあげる - 自分の開発範囲を広げていくことができる - 協調開発がスムーズになる - 誰かの書いたコードを即座に把握できる - 協調しながら並列で開発しやすくする