よろずやIT
プログラミング

AIが書いたコードをそのまま使ってはいけない理由|レビューで見る5つのチェック

執筆・監修:よろずやIT編集部|編集方針を見る

結論:まずここだけ読めばOK

詳しい手順・原因は、この下で解説しています。

プログラミングのイラスト

「動く」ことと「使ってよい」ことは別

AIにコードを頼むと、数秒で、それらしく動くものが出てきます。手作業でやっていた集計が自動化できた、という体験は、とても感動的です。

ただ、仕事でコードを使う時に大事なのは、「動いた」の先にあります。

AIが出したコードは、動くことには強い一方で、これらの点は、人が確認しないと分かりません。

AIのコードで、技術的負債が増えやすい理由

「動いているから触れない」システムの改修を依頼されると、大きな負担になっているのは、担当者しか分からない処理、古いライブラリ、ドキュメントの不備、重複したコードの4つが重なっている場合です。こうなると、小さな修正にも時間がかかります。これが、いわゆる技術的負債です。

AIを使うと、コードを作るスピードが上がります。その分、誰も中身を理解していないコードが、短期間で増えてしまうリスクがあります。作る速さが上がるほど、理解しないまま積み上がる速さも上がる、ということです。

レビューで確認する5つのチェック

AIが書いたコードを使う前に、次の5つを確認します。

① 秘密情報が入っていないか

コードの中に、パスワードやAPIキーが直接書かれていないかを確認します。また、AIに相談するためにコードを貼る時、自分のコードに含まれているキーやパスワードを、そのまま貼っていないかも振り返ってください。キーは、貼った時点で他者に渡ったものと考え、必要ならば発行元で再発行します。APIキーの扱いは、APIキーとはで解説しています。貼る前の確認には、AIに貼る前チェックが使えます。

② 実在するものか確認する

AIは、存在しない関数名やライブラリ名を、もっともらしく出すことがあります。使われている関数やライブラリは、公式ドキュメントで実在を確認します。ライブラリは、公開元や、利用されている実績も、確認しておくと安心です。古い書き方(すでに推奨されていない方法)が混じっていることもあります。

③ 想定外の入力に耐えられるか

AIが書くコードは、「正常な入力が来る」ことを前提にしていることが多いものです。次のような場合に、どうなるかを確認します。

④ テストで動作を確認する

正常な場合・異常な場合・ぎりぎりの場合(上限や下限)の3種類で、実際に動かして確認します。AIにテストを書いてもらうのは有効ですが、「期待する結果」は、人が決める必要があります。

⑤ 自分で説明できるか

最後の、そして最も大事なチェックです。読んで、何をしているか説明できないコードは、採用しない。これを基準にします。分からない部分は、AIに1行ずつ説明してもらい、それでも理解できなければ、使わないか、詳しい人に見てもらいます。

実例で見る:API連携の落とし穴

以前、プログラムのループ処理で、大量のリクエストを一度に外部のサービスに送ってしまい、サービス側からアクセスを制限されたことがありました。外から見ると、システムが突然止まったように見えて、原因の切り分けに時間がかかりました。これは、いわゆるレートリミットに引っかかったケースです。

AIに「全件を取得するコードを書いて」と頼むと、間隔を空けず、連続でリクエストを送るループが書かれることがあります。コードとしては正しく動きますが、相手のサービスの制限は考慮されていません。外部のサービスにつなぐコードは、上限・待ち時間・失敗した時の再試行を、必ず確認してください。

AIにレビューを手伝ってもらう

AIは、書くだけでなく、確認の手伝いにも使えます。

次のコードについて、セキュリティ上のリスク、想定外の入力で起きる問題、保守しにくい点を、それぞれ挙げてください。

挙げられた項目を手がかりに、自分で確認していきます。「答えを出させる」のではなく、「確認すべき点を教えてもらう」使い方は、コードでも同じです。ただし、AIのレビューも、見落としや間違いを含みます。最終的な判断は、人が行います。

最初から「安全なコード」を頼む

レビューで直すよりも、頼む段階で条件を伝えておくほうが、手戻りが減ります。次のような条件を添えて依頼してみてください。

次の処理をするコードを書いてください。条件:①パスワードやAPIキーは、コードに直接書かず、環境変数から読み込む形にする ②入力が空の場合や想定外の形式の場合のエラー処理を入れる ③外部のサービスに接続する場合は、リクエストの間隔と、失敗した時の再試行の上限を入れる ④初心者でも読めるように、処理ごとに日本語のコメントをつける

「コメントをつけてもらう」ことは、⑤の「自分で説明できるか」の確認にも役立ちます。ただし、これでも間違いが混ざる可能性はあるため、前述の5つのチェックは省略しないでください。

提出前・取り込み前のチェックリスト

AIが書いたコードを取り込む前に、次の項目に答えられるかを確認してみてください。

一つでも「いいえ」があれば、まだ取り込む段階ではありません。

小さく試して、いつでも戻せるようにする

AIが書いたコードを取り入れる時は、次のように進めると、失敗の被害を小さくできます。

組織で使うなら、ルールにしておく

個人で気をつけるだけでなく、チームでは「AIが書いたコードを、どう扱うか」を、ルールにしておくと安心です。たとえば、「AIが書いたコードも、通常のコードと同じレビューを受ける」「プログラムのコードは、そのまま本番に使わない」といった線引きです。生成AI利用ルールのひな形にも、同じ考え方の項目を入れています。

まとめ

AIを活用したプログラミングの学び方は、プログラミング独学は「真似る→飛ばす→2周目」で続くで紹介しています。

PR【送料無料】リーダブルコード より良いコードを書くためのシンプルで実践的なテクニック/DustinBoswell/TrevorFoucher/角征典

【送料無料】リーダブルコード より良いコードを書くためのシンプルで実践的なテクニック/DustinBoswell/TrevorFoucher/角征典

¥2,640

楽天で見る
SHAREXLINEはてブ

よくある質問

Q.AIが書いたコードに、著作権やライセンスの問題はありますか?

A.扱いは、国・利用するサービスの規約・組織のルールによって異なり、一律には言えません。仕事で使う場合は、利用しているAIサービスの規約と、所属組織のルールを確認してください。不明な点は、法務の担当者や専門家に相談するのが安全です。

Q.プログラミング初心者は、AIのコードをどう確認すればよいですか?

A.まず、AIに「このコードが何をするのか、1行ずつ説明して」と頼み、内容を理解できる範囲で確認してください。説明を読んでも分からない部分が残るなら、そのコードは採用しない、というのが安全な基準です。重要な処理は、経験のある人にレビューしてもらいましょう。

Q.テストコードも、AIに書かせてよいですか?

A.書かせることはできます。ただし、「どんな入力で、どんな結果になるべきか」という期待値は、人が決めて確認してください。AIが書いたコードに合わせて、AIが書いたテストが通るだけでは、確認になりません。

関連記事

最新のIT関連書籍 トップ10

PR / 楽天市場の売れ筋ランキングを定期的に取得しています。価格は変動する場合があるため、購入前に各ストアでご確認ください。