生成AIでコードを書くときに確認しておきたいポイント

アイキャッチ画像

最近では、生成AIを使ってコードを書く機会が増えてきました。
「この処理を書いてほしい」
「このエラーを直してほしい」
「このコードをもっと簡単にしてほしい」
といった内容を入力すると、数秒でコードを提案してくれます。
自分で一から調べるよりも早く、知らない技術でもある程度形にしてくれるため、非常に便利なツールだと感じます。
一方で、生成AIが出したコードをそのまま使用してしまうと、思わぬ不具合につながることもあります。
今回は、生成AIを使ってコードを書くときに、私が特に確認しておきたいと感じているポイントについてまとめてみます。

生成されたコードが「動く」とは限らない

まず最初に意識しておきたいのは、
生成AIが出したコードが、必ず正しく動くとは限らない
ということです。
コードの見た目が自然であっても、
・存在しない関数を使用している
・ライブラリの古い書き方になっている
・引数の数や型が違っている
・使用しているバージョンと合っていない
・必要な初期化処理が抜けている
といったことがあります。
そのため、生成されたコードを見て、
「それっぽいから大丈夫そう」
と判断するのではなく、実際に動作確認することが重要です。

使用している環境やバージョンを確認する

生成AIにコードを書いてもらうときに、意外と影響が大きいのが環境やバージョンです。
同じ言語やフレームワークでも、バージョンによって書き方が変わることがあります。
たとえば、
「この関数は旧バージョンでは使えるが、新しいバージョンでは推奨されていない」
といったケースもあります。
そのため、
・使用している言語
・フレームワーク
・ライブラリ
・OS
・バージョン
などは、できるだけ最初に伝える方がよいと思います。
AI側に前提条件が伝わっていないと、自分の環境では使えないコードが生成される可能性が高くなります。

既存処理を壊していないか確認する

新しいコードを追加するときは、その処理単体だけではなく、既存の処理に影響が出ていないかも確認する必要があります。
生成AIは、こちらが渡した範囲の情報をもとにコードを提案します。
逆に言えば、渡していない部分の仕様までは正確に把握できないことがあります。
そのため、
「エラーは直ったが、別の機能が動かなくなった」
ということも起こり得ます。
特に既存システムを修正するときには、
・修正前のコードを残す
・変更箇所を把握する
・関連する処理も確認する
・修正後に周辺機能もテストする
といった対応が大切です。
「目的の箇所が直ったから完了」ではなく、影響範囲まで見る必要があります。

コードの意味を理解してから使う

生成AIは非常に便利ですが、
「動いたからこれでいい」
で終わらせてしまうと、後から自分で修正できなくなることがあります。
少なくとも、
「この処理は何をしているのか」
「なぜこの書き方になっているのか」
「この変数は何に使われているのか」
くらいは理解しておいた方が安心です。
分からない部分があれば、
「このコードを1行ずつ説明してください」
と生成AIに聞くこともできます。
コードを書いてもらうだけでなく、理解するためにもAIを使うことで、自分の知識にもつながると思います。

不要な処理が入っていないか確認する

生成AIが作るコードは、必要以上に処理が多くなることがあります。
たとえば、
・同じ確認処理を何度も行っている
・使用していない変数がある
・なくてもよい関数が追加されている
・既存機能と重複する処理が入っている
といったケースです。
コード自体は動いていても、不要な処理が増えると後から読みづらくなります。
特に既存システムでは、
「すでに同じ処理をしている場所がないか」
を確認した方がよいと思います。
生成AIに新しく処理を書かせる前に、既存のコードを確認することも重要です。

セキュリティ面も確認する

生成AIでコードを書くときは、動作だけではなくセキュリティ面も確認する必要があります。
たとえば、
・パスワードをコードに直接書いていないか
・外部から受け取った値をそのまま使用していないか
・権限チェックが抜けていないか
・データベースへの入力処理に問題がないか
といった点です。
機能としては正常に動いていても、安全とは限りません。
特にユーザー情報や認証情報を扱う処理では、生成されたコードをそのまま採用せず、公式ドキュメントなども確認した方がよいと思います。

エラーが消えたからといって解決とは限らない

生成AIにエラー内容を渡すと、修正コードをすぐに提案してくれることがあります。
これは非常に便利です。
ただし、
「エラーを表示させなくする」
ことと、
「原因を解決する」
ことは別です。
たとえば、エラーが発生している処理自体を削除したり、例外を無視したりすれば、見た目上はエラーが消えることもあります。
しかし、それでは本来必要な処理まで動かなくなっている可能性があります。
そのため、
「なぜこのエラーが発生したのか」
「この修正で根本原因は解決しているのか」
を確認することが重要です。

一度に大きく変更しすぎない

AIに、
「このコード全体をきれいにしてください」
と依頼すると、大幅に書き換えられることがあります。
確かにコードは見やすくなるかもしれませんが、変更箇所が増えるほど、不具合が発生したときに原因を追いにくくなります。
特に既存システムでは、
「まず一部分だけ修正する」
「動作を確認する」
「問題なければ次の部分を修正する」
というように、小さく変更していく方が安全です。
これは生成AIを使う場合でも、通常の開発と同じだと思います。

AIに任せる部分と、自分で判断する部分を分ける

生成AIは、コードを書くうえで非常に強力なサポートツールです。
たとえば、
・コードのたたき台を作る
・エラー原因の候補を出す
・処理の説明をしてもらう
・別の書き方を提案してもらう
・簡単なテストコードを作る
といった使い方は非常に便利です。
一方で、
「この実装を採用してよいか」
「既存仕様に影響がないか」
「本番環境で安全に使えるか」
といった最終的な判断は、人が行う必要があります。
生成AIは答えを決めてくれる存在というよりも、
判断材料を増やしてくれる存在
として使う方がよいのではないかと思います。

まとめ

生成AIを使えば、これまで時間がかかっていたコード作成や調査を効率化することができます。
一方で、生成された内容が必ず正しいとは限りません。
コードを使う前には、
・自分の環境で正しく動くか
・使用しているバージョンに合っているか
・既存機能に影響がないか
・コードの意味を理解できているか
・不要な処理が入っていないか
・セキュリティ上の問題がないか
・エラーの根本原因を解決できているか
といった点を確認することが大切です。
生成AIを使うことで、コードを書くスピードは大きく上げられます。
しかし、最終的にそのコードが正しいかを判断するのは、やはり人です。
「AIが書いたから大丈夫」ではなく、「AIが書いたものを自分で確認して使う」
という意識を持つことが、生成AIをうまく活用するうえで大切なのではないでしょうか。