OSSのコードリーディングが楽になったのが嬉しい話

Goのテスト実行時に TestMain がどうやって呼び出されるのか気になった。

処理順を追ってみようと思ったが、「Go本体のコードを読む」となると腰が重かった。

Copilotに助けてもらったことで、予想以上に楽しく進めることができた。

以下のような流れで進めた。

  1. golang/gofork して、ローカルに git clone する
  2. go test が実行されたときの処理順を GitHub Copilot Chat に質問
  3. cmd/go/internal/test/test.go を起点に、Copilotに補助してもらいながら読み進める
  4. 処理フローを雑にメモする
  5. メモした処理フローをCopilotに清書してもらう
  6. 清書された内容の理解が合っているかCopilotに確認してもらう
  7. 理解が正しいか検証するため、ログ出力やテスト実行をしたくなったので、Copilotに手順を相談
  8. 実際にログやテストを動かして、自分の理解を確かめる

特に7と8が大事だと思っている。

AIに任せきりだと、正しい自信が持てない。どこかで誤解している可能性がある。

最終的に自分で実行して確認することで、安心できた

Copilotのサポートがなかったら、何時間かかっていたか分からないし、 そもそも着手すらしていなかったかもしれない。

Copilot、ありがとう。