2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

生成AIでクソコードを生成してしまった話

Last updated at Posted at 2025-12-03

クソコードお焚き上げの会:AI生成コードの反省と教訓

皆さん、こんにちは!年末も近づき、今年たまった「クソコード」を盛大にお焚き上げする季節がやってきました。
今回のテーマは、AIコード生成ツール「cursor」の使用で大失敗した経験と、そこから得られた教訓です。
生成AI活用ド初心者がやってしまったクソコード生成の反省文として残しておきます…

お焚き上げ対象:「cursor」が生成したルール無視コード

業務効率化のため、流行りのAIコード生成ツール「cursor」を利用してみました。その圧倒的な生成能力に期待し、ある機能の実装をまるっと任せてみたのですが、結果は惨憺たるものでした。
まさにクソコードを大量生成してレビューで同僚を怖がらせましょう!をやってしまったわけです。

  • マジックナンバーの放置: 定数化すべき値を直接コードに記述。
  • 不必要な複雑性: シンプルな処理を複雑なネストで実装。

コーディング規約やベストプラクティスが、まるで存在しないかのように生成されたコードは、まさに「動けばいい」の極地でした。

反省ポイント:
AIは、プロンプトに明記されない「暗黙のルール」や「文化」は理解してくれない。
規約のドキュメントを読み込ませるだけでは、細かな慣習までは反映されませんでした。

なぜAIは「クソコード」を生成したのか?

AIが生成するコードは、多くの場合、文法的には正しく、機能も一応は満たします。しかし、「チーム開発における品質」という観点では、以下の問題がありました。

  1. プロンプトが巨大すぎた
    複雑な要件を一つの巨大なプロンプトにまとめて実行したため、AIは「とにかく機能を完成させる」ことを優先し、コードの品質やルール遵守は二の次になってしまいました。
  2. ルールを細かく指定しなかった
    「命名規則は〇〇に準拠」「このロジックはヘルパー関数として分離」「エラー処理はこう書く」といった具体的な指示を怠ったため、AIは学習データから持ってきた汎用的な、しかしチームの基準に合わないコードを生成しました。

最終結論:AIと上手に付き合い、良いコードを作るには
この「クソコードお焚き上げ事件」から得られた教訓は、AIはあくまで強力な「アシスタント」であり、「丸投げ先」ではないということです。

  1. ルールに準拠したコードを生成しよう
    AIにコードを生成させる際は、コーディング規約をプロンプトに含めるか、規約に準拠した既存のコードを例として提供しましょう。AIの学習ソースが何であれ、チームのルールが最優先です。
  2. 短く区切ってプロンプトを実行しよう
    一度にすべてを任せるのではなく、機能やタスクを細かく分解し、短く区切ったプロンプトを段階的に実行しましょう。
  • 「まず、このデータの取得処理を実装して(命名規則を遵守)」
  • 「次に、取得したデータをこの形式に変換するロジックを追加」
  • 「最後に、エラーハンドリングを標準のパターンで追加」
    このように小さなステップで指示を出すことで、AIの出力の品質を常にコントロールし、ルール違反を早期に修正できます。

AIを「コードを書くスピード」だけでなく、「コードの品質」を高めるツールとして活用できるよう、プロンプトの出し方を見直しましょう。
「お焚き上げしたい」クソコードの事例があれば、ぜひ教えてください!

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?