水無瀬のプログラミング日記

生成AIのコード品質とレビュー負担について考える

はじめに

最近生成AIのコードの「品質」についてよく分からなくなり、うまく言語化できなくて懸念点も伝えられないので整理したい。

前提

昨今、生成AIのおかげで明らかに開発(コーディング)の速度は上がっていると思う。 一方で、レビュー(生成AIのコードを見る)をすることがボトルネックになるという話を聞くし、同じくそう思っている。 そのレビューがなんで重いのか考える。

そもそも人間のレビューが必要なのか

現状はまだ必要だと考えている。 生成AIが生成したコードに対して責任を持つのが人間の仕事だと思っているためである。 まだ生成AIは一定間違えるリスクを含んでいる認識であり、それを最後に防げる可能性があるのが人間のレビューだと考えている。 そのため、「生成AIにレビューさせて通ったからOKにすれば?」というのは今回の結論としては不適切だと考える。

仮に将来的にそういう世界が来るのであれば、今回の話は関係ない。

本記事で考えたいこと

どうすれば人間のレビューが楽になるのか、できるのか。

なぜレビューが重いのか

おそらく、「品質」が低いから。もしくは、レビュワーに対する前提情報が足りないから。 後者については、人間が見るにしろAIにレビューさせるにしろ、本来あるべきものであり、それがあれば一定解決すると考える。 仮に資料を用意したとしても「前提情報が難解すぎる」という場合、それが正しい情報であるならAIに解説させる、レビュイーが説明するなど、負担を軽くする方法はあるという認識である。

自分は前者の場合の「品質」が何を指しているかわからなくて、「品質が低くてレビューが大変で……」という意見の共感ができない。 自分が一番気になっているのはここである。

「品質」とは何か

ここで言われている「品質」は機能を満たしているかどうかという話ではないという認識である。 それについては正しい仕様を元にAIにコード読ませれば実装できてるかどうかはわかる。 そもそも生成されるコードが機能を満たしている、いないは「レビュー重い」以前の問題なので、レビュイーが担保すべき事柄だと思う。

もし、正しい仕様がない場合はどうするのか? 作るべき。正しい挙動が何かわからなかったら人間もレビュー通せないと思うので。

そのため、ここで言う「品質」はコードの見た目だけでなく、設計意図の読み取りやすさ、既存コードベースとの一貫性、保守性を含む。 つまり「レビュワーが短時間で妥当性を判断できるか」ということだと私は考える。

なぜそれらが低くなってしまうのか

ここもわからない。そもそも個人的にはそんなに読みにくいと感じた経験が少ない。 Aという方法とBという方法があった時、「私はBが好みだけどAIはAで実装するんだ」程度の感想にとどまる。

仮にここを品質が低いと捉える人がいる場合、それはやって欲しくないこと、やって欲しいことがあるのであればAIに伝えるべき。 仮に既存と揃ってないことを懸念している人がいる場合、ここについても同様に伝えるべき。 仮に生成AIが一度に大量のコードを生成するからPRが読みにくいとする人がいる場合、PRの作り方の方に課題があるのでそちらを改善した方が良いと考える。 仮に「"そもそも実装があっているかどうか"や"非機能要件を担保しているか"レビューで見ているんだよ」という人がいる場合、見方やコードの生成方法を変えた方が良い。 レビューで全てを担保しようとするのではなく、レビューに出す前の段階で品質を作り込むべき。 現代のAIは懸念点を伝えればそれを考慮してくれるはず。

つまり、私はどうしたいかという基準がないものを話しているため、話が噛み合わない/納得感がないと思う。

「品質が低い」が人によって違う?

あり得ると考える。 そもそも私の許容できる「品質」も一般的にみたら低いものかもしれない。 ここの基準/認識が揃わない限り「品質」を基準に大変/大変じゃないは語れないと思う。

共通化するにはどうする?

ここの実装はこうして欲しい、ここはこうしないで欲しいを予め全員で共有しておく。暗黙知を減らしていくべき。 単純な解決策としてはコーディング規約等のドキュメント整備をしていくしかないと思う。 「ドキュメントは作るのが大変だし誰がメンテナンスするの?」という意見があれば、それについてやるしかないという理解。 そもそも暗黙知があるけど口伝になっているならその方が間違っていると思い、人間だけの開発でも問題あったはず。

まとめ

出力が安定するようなドキュメントを用意した上で開発すれば、これらの課題は一定解決可能だと考える。 なぜなら一定範囲内の人物間において、共通認識(合意)ができることになるから。 これを元にレビューを出す側が仕様を明確にしてからAIにコードを書かせ、PRの粒度や前提情報の記載などレビューしやすい出し方を決めていくことで私の懸念は解消できそうである。

Xに投稿する
Githubリンク
©2026 tminasenThis site uses Google Analytics.