Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
なぜAIは我々のソースコードを理解してくれないのか / Why AI Misunderstan...
Search
株式会社カオナビ
October 17, 2025
Technology
0
10
なぜAIは我々のソースコードを理解してくれないのか / Why AI Misunderstands Our Code
2025年7月19日,20日開催「PRODUCT HISTORY CONFERENCE 2025」で登壇した際の発表資料です。
https://lp-prohis.youtrust.jp/
株式会社カオナビ
October 17, 2025
Tweet
Share
More Decks by 株式会社カオナビ
See All by 株式会社カオナビ
ステップアップする技術発信 : キャリアに活かせる発信戦略とは / Strategic Tech Communication
kaonavi
0
130
開発生産性を測る前にやるべきこと - 組織改善の実践 / Before Measuring Dev Productivity
kaonavi
18
13k
怖くないComposer / Composer Made Easy
kaonavi
0
380
「ラベルにとらわれない」エンジニアでいること/Be an engineer beyond labels
kaonavi
0
470
Popoverを早速実践投入してついでにブラウザにバグ報告もした話/Popover use, bug reported
kaonavi
0
290
デザインシステムのレガシーコンポーネントを刷新した話/Design System Legacy Renewal
kaonavi
1
420
バックエンド留学した話/Backend study abroad story
kaonavi
0
380
新卒1年目のフロントエンド開発での取り組み/New grad front-end efforts
kaonavi
0
420
リモートワーク中心の組織を活性化させるリアル接点の力/The Power of Real Contacts
kaonavi
0
410
Other Decks in Technology
See All in Technology
Bill One 開発エンジニア 紹介資料
sansan33
PRO
4
14k
Simplifying Cloud Native app testing across environments with Dapr and Microcks
salaboy
0
150
「使い方教えて」「事例教えて」じゃもう遅い! Microsoft 365 Copilot を触り倒そう!
taichinakamura
0
380
2025-10-09_プロジェクトマネージャーAIチャンス
taukami
0
130
Vibe Coding Year in Review. From Karpathy to Real-World Agents by Niels Rolland, CEO Paatch
vcoisne
0
130
能登半島災害現場エンジニアクロストーク 【JAWS FESTA 2025 in 金沢】
ditccsugii
0
630
新規事業におけるGORM+SQLx併用アーキテクチャ
hacomono
PRO
0
220
Claude Codeを駆使した初めてのiOSアプリ開発 ~ゼロから3週間でグローバルハッカソンで入賞するまで~
oikon48
1
370
防災デジタル分野での官民共創の取り組み (2)DIT/CCとD-CERTについて
ditccsugii
0
290
プレーリーカードを活用しよう❗❗デジタル名刺交換からはじまるイベント会場交流のススメ
tsukaman
0
140
20201008_ファインディ_品質意識を育てる役目は人かAIか___2_.pdf
findy_eventslides
2
630
エンタメとAIのための3Dパラレルワールド構築(GPU UNITE 2025 特別講演)
pfn
PRO
0
300
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
37
3.5k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
35
6.1k
Scaling GitHub
holman
463
140k
GraphQLとの向き合い方2022年版
quramy
49
14k
Docker and Python
trallard
46
3.6k
Designing for Performance
lara
610
69k
We Have a Design System, Now What?
morganepeng
53
7.8k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
9
590
Building Better People: How to give real-time feedback that sticks.
wjessup
369
20k
Making Projects Easy
brettharned
120
6.4k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
The Cost Of JavaScript in 2023
addyosmani
55
9k
Transcript
なぜAIは我々のソースコードを 理解してくれないのか 2025.09.19 | PRODUCT HISTORY CONFERENCE 2025 © kaonavi,
inc.
鈴木 僚太 株式会社カオナビ CTO室 エキスパート(フロントエンド) 自己紹介 © kaonavi, inc. 2
今回のテーマ : コーディング AIエージェント © kaonavi, inc. 3 コーディング AIは否が応でも発展を続けており、
開発効率向上 を考える上で避けられなくなった。 しかし、誰でもいつでも高品質なコードを ポンと出せる状況には至っていない。
今回のテーマ : コーディング AIエージェント © kaonavi, inc. 4 カオナビではコーディング AIエージェント
の導入が 進んでいる。 それに伴い、成功だけでなく失敗の体験も蓄積して きた。 AIエージェントをより使いこなすための礎として、 AIがうまく動いてくれなかった事例 を紹介します。
カオナビでの AIエージェントの活用状況 © kaonavi, inc. 5
カオナビの AI組織 © kaonavi, inc. 6 カオナビではAI推進室を立ち上げ、さまざまな面から AIの活用をサポート。 その中にはコーディングエージェ ントの導入促進も含まれる。
公式noteの記事もどうぞ →
コーディングエージェント © kaonavi, inc. 7 GitHub CopilotとClaude Codeの活用が盛ん。 - テストコードの開発速度向上
- QAエンジニアもテストコード書く - 分野越境 - 新卒メンバーの圧倒的成長 - ディレクターがPoC作る など多数の事例!
しかし…… © kaonavi, inc. 8 実際のプロダクトコードの開発に目を向けると、 うまくいった事例ばかりではない。 大規模な開発は言わずもがな、ちょっとした修正でも うまく動かない ケースが多い!
This Talk © kaonavi, inc. 9 実際にAIエージェントを活用しているエンジニアたちにヒアリ ングして、 うまくいかなかった事例 を集めました。
うまくいかなった事例集 © kaonavi, inc. 10
事例① 謎の関数に AIが気を取られる © kaonavi, inc. 11 カオナビのバックエンドはLaravelで、多言語化のために trans() 関数を使う。
フロントエンドでも、同じtrans()関数を使える仕組みが導入さ れていた。 これは一般的なReactアプリではあまり見られない。
事例① 謎の関数に AIが気を取られる © kaonavi, inc. 12 AIにフロントエンドのバグ調査を依頼すると…… - AIがtrans()を不審に思い、transの定義を探しに行く
(本題のバグ調査をしてくれない) - transの定義がないことがバグの原因とか言ってくる (機能開発時にも使いこなせないことがある)
事例① 謎の関数に AIが気を取られる © kaonavi, inc. 13 対策: フロントエンドにおけるtrans()の使い方を ドキュメント化する
(未実践。CLAUDE.mdに入れるとかよりも、 必要に応じてAIが探し出せることが重要か?)
事例② オートフォーマットに翻弄される © kaonavi, inc. 14 Claude Codeのhooks機能で自動フォーマットを設定 していたケース。 未使用のimportが削除されるようにした結果……
事例② オートフォーマットに翻弄される © kaonavi, inc. 15 Claude Codeさん「 まず、XXのために〇〇をimportします ...
importが削除されています。再度import文を追加します ... ファイルが自動フォーマットされたため、再度編集を行います ... ファイルが自動でフォーマットされてしまうため、必要なコードを作成して から再度組み込みます
事例② オートフォーマットに翻弄される © kaonavi, inc. 16 順番に作業した結果、前の作業が消されてしまい ループにはまった。(自分で気づいて抜け出した) 人間はすぐ気付けるが、AIは気づくのに時間がかかり コンテキストも消費してしまう。
事例② オートフォーマットに翻弄される © kaonavi, inc. 17 対策: 状況に応じてフォーマッターの設定を細かく制御す る?(未実施)
事例③ 空気を読まない © kaonavi, inc. 18 ORM (Eloquent) の便利機能がいろいろあるが、 既存ソースコードではあまり使用していなかった。
ソースコードの統一性の観点から新規コードでも 便利機能は使わない風潮となっていた。 しかしAIは空気を読まずに便利機能を使ってくる。 レビューで弾かれる!
事例④ 空気を読んじゃう © kaonavi, inc. 19 APIのテストにSpectatorを最近使い始めたが、 古い既存のテストコード(使ってない)に引っ張られて AIがSpectatorを使わずにテストを書いてしまう。
事例③ 空気を読まない / ④ 空気を読んじゃう © kaonavi, inc. 20 対策:
最新のコーディングルールを明文化することか。 ただ、量が多くなると精度が悪くなりそうなのが悩み。 AIがすでに持っている「常識」に反しないことも 重要になってきそう。
事例⑤ useEffectで何でも解消しようとする © kaonavi, inc. 21 ReactのuseEffectは誤った使われ方をすることが多い。 AIさんも適当なuseEffectの使い方をしてくる事例多数! - プロジェクト内のuseEffectの使い方の影響?
- 世間の平均的なuseEffect力を学習している?
事例⑤ useEffectで何でも解消しようとする © kaonavi, inc. 22 対策: useEffectの正しい使い方をプロンプトに含めると、マシに なったという報告あり。 useEffectのレビュー観点を加えてAIにレビューさせる
取り組みも。
事例⑥ 架空のAPIを使う © kaonavi, inc. 23 ReactでuseGetRequestという自前のフックがあった。 GETリクエストをするとき用。 それから類推して、usePostRequestという架空のフックを使い 始めた。
(実際にはPOSTリクエスト用のフックはない)
事例⑥ 架空のAPIを使う © kaonavi, inc. 24 対策: おそらく、AIの想像を裏切らない理にかなったAPI 設計をすることが重要。 (ただ、GETとPOSTではReactでの取り扱いがかなり異なることを
理解するのは、一般的なコーディングの実力としてできてほしい。 そこはAIの単純な実力不足)
事例⑦ 変数の命名で混乱する © kaonavi, inc. 25 「平均年齢」を取り扱う機能で、変数の命名が average_age ではなく age
となっていた。 AIに対して「平均年齢」に関する指示をしても、 AIはどこを編集すればいいか理解できなかった。
事例⑦ 変数の命名で混乱する © kaonavi, inc. 26 対策: 命名をちゃんとする。(それはそう) AIはコードを必要最小限だけ読んで理解しようとする。 変数の命名がちゃんとしていることは、効率の良いコード理解の
ために非常に重要。 やはり、AIの“常識”を裏切らないことが大事。
事例⑧ ディレクトリ構成のルールを守らない © kaonavi, inc. 27 古いディレクトリ構成と今どきなディレクトリ構成 (featureベースのやつ)があり、最近のコードは新しい ディレクトリ構成で作られているが、 AIが古いディレクトリ構成でコードを書いてしまった。
新しいディレクトリ構成に沿った既存ファイルもあるのに、AIはそち らに合わせなかった。
事例⑧ ディレクトリ構成のルールを守らない © kaonavi, inc. 28 新旧のディレクトリ構成が両方CLAUDE.mdで紹介されて いたので、旧を尊重してしまった? 対策: 全ての情報をAIに伝えるのではなく、最新の情報に比重を
寄せるべきかも? (ただし古いコードに直面して混乱する恐れはある)
なぜAIは我々のソースコードを 理解してくれないのか © kaonavi, inc. 29
なぜ理解してくれないのか © kaonavi, inc. 30 もちろん理由は1つではない。 しかし、事例を集めることで傾向が見えてきた。
なぜ理解してくれないのか © kaonavi, inc. 31 Q. なぜAIは我々のソースコードを理解してくれないのか A. 新旧のプラクティスが混在しているから 従来取られがちだった「全部一気に移行するのは大変
だから、できるところからやろう」的な戦略は AI時代にはどうやら裏目に出るようだ。つらい。
考察 © kaonavi, inc. 32 新旧プラクティスが混在していると人間の新規メンバーにも つらいが、人間は歴史的経緯を理解し適応する能力がある。 AIは常に新しくオンボーディングしてきた新人であり、プラク ティスの混在は悪影響が大きい。 (歴史的経緯を全部ドキュメント化する? コンテキストの無駄遣いすぎ
る)
やり切ることが重要 © kaonavi, inc. 33 新しいプラクティスを導入するときは、 移行しきることが重要になりそう。 幸い、大量の移行をやり切ることは、 AIによって以前よりも現実的になった。 いわゆるVibe
Codingなども、 移行用のスクリプトを作ることに活用できる。 自分も最近、画面数200以上のアプリで Reactのバージョンアップをやり切りました。
余談: AIの常識レベルを見極める © kaonavi, inc. 34 AIが持つ“常識”を裏切らないことが、AIのポテンシャルを発 揮する近道になる。 一方で、求められるレベルがAIの実力よりも高いこともある。 そこはプロンプトによる補正が必要だが、補正量を少なくして
最適化を図りたい。 AIの実力の向上にも敏感になろう。
まとめ © kaonavi, inc. 35
まとめ © kaonavi, inc. 36 弊社のエンジニアから収集したAIコーディングの事例 を考察し、AIによるコーディングがうまくいかない原因が「新 旧のプラクティスが混在しているから 」である ケースが多いことが分かった。
AIコーディングの時代、移行するならやり切る姿勢が 重要になるかも?
We are hiring! https://corp.kaonavi.jp/recruit/list/ 選考を希望する方 https://hrmos.co/pages/kaonavi/jobs/casual21 まずは話を聞いてみたいという方 37 © kaonavi,
inc.