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利活用
Search
takuya ohtonari
June 11, 2025
Programming
0
660
レガシーシステムの機能調査・開発におけるAI利活用
takuya ohtonari
June 11, 2025
Tweet
Share
Other Decks in Programming
See All in Programming
Go製CLIツールをnpmで配布するには
syumai
0
760
Claude Code で Astro blog を Pages から Workers へ移行してみた
codehex
0
160
코딩 에이전트 체크리스트: Claude Code ver.
nacyot
0
1k
テストから始めるAgentic Coding 〜Claude Codeと共に行うTDD〜 / Agentic Coding starts with testing
rkaga
17
6.2k
What's new in AppKit on macOS 26
1024jp
0
180
ZeroETLで始めるDynamoDBとS3の連携
afooooil
0
130
構文解析器入門
ydah
7
1.9k
オンコール⼊⾨〜ページャーが鳴る前に、あなたが備えられること〜 / Before The Pager Rings
yktakaha4
2
1.2k
SQLアンチパターン第2版 データベースプログラミングで陥りがちな失敗とその対策 / Intro to SQL Antipatterns 2nd
twada
PRO
34
10k
はじめてのWeb API体験 ー 飲食店検索アプリを作ろうー
akinko_0915
0
170
なぜあなたのオブザーバビリティ導入は頓挫するのか
ryota_hnk
3
510
Workers を定期実行する方法は一つじゃない
rokuosan
0
130
Featured
See All Featured
Testing 201, or: Great Expectations
jmmastey
43
7.6k
Code Review Best Practice
trishagee
69
19k
Making the Leap to Tech Lead
cromwellryan
134
9.4k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
21k
Producing Creativity
orderedlist
PRO
346
40k
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
5.9k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.1k
Making Projects Easy
brettharned
117
6.3k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Transcript
レガシーシステムの 機能調査・開発における AI 利活用 1 / 15
本 LT の内容 レガシーシステムの調査や開発においてふりかえって考えたときに AI に頼って正解だったと思えることを共有します 話すこと 本 LT におけるレガシーシステムとは
利用した AI ツールや利用方法 話さないこと AI を利用できるようにするまでの過程や手順 AI 同士の比較結果 2 / 15
お伝えしたいこと まずは認知負荷を下げる方法を考えよう! 3 / 15
大隣 卓也 バックエンドエンジニア / 広く浅く何でも屋 所属: オイシックス・ラ・大地株式会社 # ゲーム #
ポタリング # 謎解き # リアル脱出ゲーム # 音楽 4 / 15
本 LT における「レガシーシステム」 色々と暗黙的で認知負荷が非常に高い状態 明確な仕様がない・わからない テストケースや自動テストが積み上げられておらず、毎回ゼロから作成している 何故、そうなっているのか、そうしたのか、読み解くことができないソースコード 5 / 15
この LT を届けたい人たち 猫の手も借りたい、でも… Agent モードの処理が先に進まない そもそも目の前のお仕事が手一杯で AI と試行錯誤する余裕がない 最終的に人間が責任をもたないといけないため、任せっきりにできない
使いこなせずお金と時間だけ浪費していく不安がある 人間にとって認知負荷が高い状態は AI にとっても同様に認知負荷が高いことも 6 / 15
実例紹介 おまかせできるようにするために AI と伴走する 難しく考えず「これだけでもいいんだ」を実感する 7 / 15
参考)弊社における AI 事情 今回紹介する内容は、以下を利用した結果です 利用できる AI ツール Gemini NotebookLM GitHub
Copilot Amazon Bedrock モデルは割愛します 利用している環境 Visual Studio Code IntelliJ IDEA 基本的にはローカル環境で利用したお話です 8 / 15
ノイズを減らして認知負荷を下げていく 例) 「長期間、コメントアウトされているソースコードを削除してください」 PR レビューの負荷も小さい 心理的負担、時間を軽減できる Ask モードで利用する場合 削除したソースコードを出力してくれる コピペして差分チェック
Agent モードで利用する場合 区切りをつけて任せるとうまくいく パッケージ単位など 別案)明らかに不要になったコンパイルスイッチの削除を依頼する、など 9 / 15
とりあえずユニットテストを作らせてみる 例) 「このファイルのユニットテストを作成してください」 作成されたユニットテストをベースにコードを読み込んでいく ある程度の使い方がざっくりと理解しやすくなる AI に更に修正させる 作成させたユニットテストに対して 「このファイルの問題点を指摘してください」 カバレッジレポートをコンテキストに追加して
「テストカバレッジを高めてください」 人間の手で修正して学ばせる 理想的な形にリファクタリングする ルールを記載したファイルを作成して 次回以降、コンテキストに指定する 一切読まずに呼吸をするように指示を出すのがコツ 10 / 15
読みやすい形に整理させてみる 例) 「このファイルについて説明してください。 以下のアウトラインに従い markdown 形式で出力してください。 」 アウトラインをテンプレート化してテンプレートも育てていく アウトラインの例 はじめに
主な特徴・役割 画面 画面遷移 依存関係 ドキュメントに残して人間が育てていく AI は出力内容が安定しないため ある程度満足なものが出力されたら残す 今度は AI のインプットにできる状態を目指す 11 / 15
SQL を作らせてみる 例) 「< テーブル名> の < カラム名> を更新する SQL
を作成してください」 IntelliJ の Database Tool Window で Schema を表示できる状態で指示を出す Schema に対応した SQL を作成してくれる 大体の CRUD を出力できる 複雑な SQL も言語化できれば作成してくれる SQL をファイル化しておくと吉 参照して他の SQL をベースに出力してくれる 12 / 15
参考)失敗例 失敗例) 非常に大きなサイズのファイル(数千行〜数万行)に対して調査指示 何故か別のファイルの調査結果を出してきた 13 / 15
参考)失敗例 ワークスペース全体に対して以下のような指示 「〇〇の処理を行っている箇所を特定して」 AI からの回答は以下のような結果になりました このような単語を用いることが多いです(関連キーワードが羅列される) ワークスペース内で関連キーワードを検索してみましょう 一般的なシステムではこのような場所で実装されることが多いです(テーブル名や処理名が羅列される) 具体的なファイルを確認してお教えできますので、関連するファイルを教えて下さい その関連するファイルを教えてほしいのですよ…
14 / 15
ご清聴ありがとうございました 15 / 15