この話は先週のことです。その日、私は副業で、顧客の古いプロジェクトのフロントエンドページを修正することになりました。機能は複雑ではなく、いくつかのボタンのインタラクションロジックを変更するだけでした。私はこれは簡単な仕事だと思い、直接ChatGPTに任せればいいじゃないかと思いました。自分でコードを一行ずつ書く手間も省けます。
私は要件を明確に説明し、変数名の付け方まで指定しました。ChatGPTも期待に応えて、パッパと大量のコードを生成してくれました。見てみると、構造は明確で、コメントも完備、エラーハンドリングまで親切に追加してくれていました。その時は嬉しくて、これは完璧だと思い、そのままコピーしてプロジェクトに貼り付け、保存してブラウザをリフレッシュしました。
するとどうなったと思いますか?ページは真っ白になりました。コンソールにはエラーが真っ赤に表示され、まるでお祝いのようでした。
すぐにエラー情報をコピーしてChatGPTに見せると、「申し訳ありません、エッジケースを見落としていました」と言って、修正したコードを送ってきました。再度貼り付けると、今度は白画面は解消されましたが、ボタンをクリックしても反応がありません。さらにフィードバックを送り、さらに修正を繰り返し、7〜8回も往復しました。毎回、1つのバグを修正すると、2つの新しいバグが発生するという状態でした。最も腹立たしかったのは、プロジェクトに存在しない関数をコード内で使用し、真面目に「ここで共通メソッドを呼び出しています」とコメントしていたことです。
その時は本当にキーボードを叩き壊したい気持ちでした。顧客はまだ催促していて、午後にはリリースすると言っていました。画面には乱雑なコードが表示され、インデントは乱れ、スペースとタブが混在し、括弧が行末にあったり行頭にあったりして、ファイル全体が猫に踏まれた後のようでした。この状態で手動で修正するのは不可能で、見ることすらできませんでした。
顧客に延期を謝罪しようと思ったその時、以前ブックマークしたオンラインツールを思い出しました。「JSフォーマット圧縮」というものです。ダメ元で、ChatGPTが生成した最後のバージョンのコード全体をそこに貼り付け、「フォーマット」をクリックしました。
すると、奇跡が起こりました。ぎゅうぎゅうに詰まっていたコードが一瞬で広がり、各階層がはっきりと見え、改行やインデントが適切に施されました。問題が一目でわかりました。ループの終了括弧の位置が間違っていて、ロジック全体がずれていました。また、変数名のスペルが一貫しておらず、ChatGPTは「userName」と書いたのに、後で呼び出すときは「username」になっていました。
正直なところ、以前はこのようなフォーマットツールを軽視していました。単にレイアウトを整えるだけで、技術的な価値はないと思っていました。しかし、その日、自分が書いたわけではない、しかもロジックに問題があるコードを扱うとき、フォーマットは虫眼鏡のような役割を果たすことを理解しました。コードが展開されると、隠れていたエラーがすべて明らかになりました。
その後、私はその2つのエラーを手動で修正し、ツールで「圧縮」を実行すると、サイズがかなり小さくなり、読み込み速度も向上しました。顧客に送信すると、一発で承認されました。
この件から得た教訓は深いです。ChatGPTは確かにコードを書くのを助けてくれますが、神ではありません。プロジェクトのコンテキストを見ることも、実行結果をテストすることもできません。提供されるコードは、本質的に「正解のように見えるもの」です。それをそのまま本番環境に投入すれば、失敗するのは時間の問題です。
しかし、AIにコードを書かせるなと勧めているわけではありません。それはあまりにも大げさです。私が言いたいのは、保険となる手段を持つべきだということです。今の私のワークフローは変わりました。ChatGPTにコードを生成させても、どれだけ自信満々でも、まずJSフォーマットツールに通します。フォーマット後、ロジックが通っているか一目でわかるので、ぎゅうぎゅうに詰まったコードを直接読むよりも10倍効率的です。
さらに、このツールの利点は、オフラインで動作し、コードがサーバーにアップロードされないことです。副業や会社の機密コードを扱う人にとっては、安心感が抜群です。その後、自分が書いたコードのチェックにも使うようになりました。急いで書いたコードは乱雑になりがちですが、フォーマットすると、うっかり見落としたカンマやセミコロンも発見できます。
今、顧客から新しいプロジェクトを紹介されましたが、やはりChatGPTで下書きを書くつもりです。しかし、もう振り回されることはありません。フォーマット、チェック、修正、圧縮、リリース。この一連の流れを完了して初めて、安心できます。
皆さんもAIがコードを書いて失敗した経験があれば、無理に耐えず、まずコードをフォーマットしてみてください。真実はあの乱雑な文字の中に隠れていることがあります。ただ、それをはっきりと見るための目が必要なだけです。