Upgrade to Pro — share decks privately, control downloads, hide ads and more …

なぜAIは我々のソースコードを理解してくれないのか / Why AI Misunderstan...

なぜAIは我々のソースコードを理解してくれないのか / Why AI Misunderstands Our Code

2025年7月19日,20日開催「PRODUCT HISTORY CONFERENCE 2025」で登壇した際の発表資料です。
https://lp-prohis.youtrust.jp/

Avatar for 株式会社カオナビ

株式会社カオナビ

October 17, 2025
Tweet

More Decks by 株式会社カオナビ

Other Decks in Technology

Transcript

  1. 今回のテーマ : コーディング AIエージェント © kaonavi, inc. 3 コーディング AIは否が応でも発展を続けており、

    開発効率向上 を考える上で避けられなくなった。 しかし、誰でもいつでも高品質なコードを ポンと出せる状況には至っていない。
  2. 今回のテーマ : コーディング AIエージェント © kaonavi, inc. 4 カオナビではコーディング AIエージェント

    の導入が 進んでいる。 それに伴い、成功だけでなく失敗の体験も蓄積して きた。 AIエージェントをより使いこなすための礎として、 AIがうまく動いてくれなかった事例 を紹介します。
  3. コーディングエージェント © kaonavi, inc. 7 GitHub CopilotとClaude Codeの活用が盛ん。 - テストコードの開発速度向上

    - QAエンジニアもテストコード書く - 分野越境 - 新卒メンバーの圧倒的成長 - ディレクターがPoC作る など多数の事例!
  4. 事例① 謎の関数に AIが気を取られる © kaonavi, inc. 11 カオナビのバックエンドはLaravelで、多言語化のために trans() 関数を使う。

    フロントエンドでも、同じtrans()関数を使える仕組みが導入さ れていた。 これは一般的なReactアプリではあまり見られない。
  5. 事例① 謎の関数に AIが気を取られる © kaonavi, inc. 12 AIにフロントエンドのバグ調査を依頼すると…… - AIがtrans()を不審に思い、transの定義を探しに行く

    (本題のバグ調査をしてくれない) - transの定義がないことがバグの原因とか言ってくる (機能開発時にも使いこなせないことがある)
  6. 事例① 謎の関数に AIが気を取られる © kaonavi, inc. 13 対策: フロントエンドにおけるtrans()の使い方を ドキュメント化する

    (未実践。CLAUDE.mdに入れるとかよりも、 必要に応じてAIが探し出せることが重要か?)
  7. 事例② オートフォーマットに翻弄される © kaonavi, inc. 15 Claude Codeさん「 まず、XXのために〇〇をimportします ...

    importが削除されています。再度import文を追加します ... ファイルが自動フォーマットされたため、再度編集を行います ... ファイルが自動でフォーマットされてしまうため、必要なコードを作成して から再度組み込みます
  8. 事例③ 空気を読まない © kaonavi, inc. 18 ORM (Eloquent) の便利機能がいろいろあるが、 既存ソースコードではあまり使用していなかった。

    ソースコードの統一性の観点から新規コードでも 便利機能は使わない風潮となっていた。 しかしAIは空気を読まずに便利機能を使ってくる。 レビューで弾かれる!
  9. 事例③ 空気を読まない / ④ 空気を読んじゃう © kaonavi, inc. 20 対策:

    最新のコーディングルールを明文化することか。 ただ、量が多くなると精度が悪くなりそうなのが悩み。 AIがすでに持っている「常識」に反しないことも 重要になってきそう。
  10. 事例⑦ 変数の命名で混乱する © kaonavi, inc. 25 「平均年齢」を取り扱う機能で、変数の命名が average_age ではなく age

    となっていた。 AIに対して「平均年齢」に関する指示をしても、 AIはどこを編集すればいいか理解できなかった。
  11. やり切ることが重要 © kaonavi, inc. 33 新しいプラクティスを導入するときは、 移行しきることが重要になりそう。 幸い、大量の移行をやり切ることは、 AIによって以前よりも現実的になった。 いわゆるVibe

    Codingなども、 移行用のスクリプトを作ることに活用できる。 自分も最近、画面数200以上のアプリで Reactのバージョンアップをやり切りました。