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
Atsushi Nakatsugawa
PRO
December 16, 2025
Technology
0
63
AIによるコードレビューで 開発体験を向上させよう!
AI Engineering Summit Tokyo 2025
https://ai-engineering-summit-tokyo.findy-tools.io/2025
の発表資料です。
Atsushi Nakatsugawa
PRO
December 16, 2025
Tweet
Share
More Decks by Atsushi Nakatsugawa
See All by Atsushi Nakatsugawa
AI時代のIssue駆動開発のススメ
moongift
PRO
0
300
プロダクト開発の品質を守るAIコードレビュー:事例に見る導入ポイント
moongift
PRO
1
2.7k
AIで急増した生産量の荒波をCodeRabbitで乗りこなそう
moongift
PRO
1
77
レビュー負債を解消する ― CodeRabbitが支えるAI駆動開発
moongift
PRO
0
640
個人開発からエンプラまで。AIコードレビューで開発を楽しもう
moongift
PRO
0
450
AIで急増した生産「量」の荒波をCodeRabbitで乗りこなそう
moongift
PRO
1
1.6k
Codexとも仲良く。CodeRabbit CLIの紹介
moongift
PRO
1
970
リレーションからマーケティングへ。継続するDevRelのために行うべきこと
moongift
PRO
0
45
開発スピードとスキル向上を両立するAIコードレビューの活かし方
moongift
PRO
0
100
Other Decks in Technology
See All in Technology
AWS Systems Managerのハイブリッドアクティベーションを使用したガバメントクラウド環境の統合管理
toru_kubota
1
190
Network Firewall Proxyで 自前プロキシを消し去ることができるのか
gusandayo
0
120
イベントで大活躍する電子ペーパー名札を作る(その2) 〜 M5PaperとM5PaperS3 〜 / IoTLT @ JLCPCB オープンハードカンファレンス
you
PRO
0
220
15年メンテしてきたdotfilesから開発トレンドを振り返る 2011 - 2026
giginet
PRO
1
220
JAWS DAYS 2026でAIの「もやっと」感が解消された話
smt7174
1
110
Cursor Subagentsはいいぞ
yug1224
2
120
LLMに何を任せ、何を任せないか
cap120
10
6.2k
韓非子に学ぶAI活用術
tomfook
4
1.2k
契約書からの情報抽出を行うLLMのスループットを、バッチ処理を用いて最大40%改善した話
sansantech
PRO
3
320
ADK + Gemini Enterprise で 外部 API 連携エージェント作るなら OAuth の仕組みを理解しておこう
kaz1437
0
230
Zephyr(RTOS)でOpenPLCを実装してみた
iotengineer22
0
160
Physical AI on AWS リファレンスアーキテクチャ / Physical AI on AWS Reference Architecture
aws_shota
1
200
Featured
See All Featured
Statistics for Hackers
jakevdp
799
230k
Color Theory Basics | Prateek | Gurzu
gurzu
0
270
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
170
Marketing to machines
jonoalderson
1
5.1k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.1k
Practical Orchestrator
shlominoach
191
11k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.1k
Documentation Writing (for coders)
carmenintech
77
5.3k
Building AI with AI
inesmontani
PRO
1
830
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
240
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.2k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
78
Transcript
$PEFYͱྑ͘ɻ $PEF3BCCJU$-*ͷհ ɹ$PEFY.FFUVQ+BQBO "*ʹΑΔίʔυϨϏϡʔͰ ։ൃମݧΛ্ͤ͞Α͏ʂ $PEF3BCCJUσϕϩούʔΞυϘέΠτதಞ࢘ "*&OHJOFFSJOH4VNNJU5PLZP
@goofmint fb.me/goofmint த ಞ࢘ גࣜձࣾMOONGIFT දऔక ΞυϘέΠτ ίϛϡχςΟ ओ࠵ CodeRabbit
σϕϩούʔΞυϘέΠτ Ұൠࣾஂ๏ਓDevRel දཧࣄ ࣗݾհ
$PEF3BCCJU"*ίʔυϨϏϡʔαʔϏε 044ɺ$-*ɺ74$PEFػೳ֦ுແྉ ΩϟϥΫλʔͷ໊લ)PQQZ ֮͑ͯ΄͍ͭ͠ͷ͜ͱ ϘΫϗοϐʔʂ
։ൃʹ"*Λಋೖ͍ͯ͠·͔͢ʁ
طଘγεςϜͷಋೖ ਓࡐͷ֬อ ৴པੑɾݕূɾ࣭ͷ֬อ ίετ "*ۦಈ։ൃΛߦ͏্Ͱਏ͍͜ͱ
طଘγεςϜͷಋೖ ਓࡐͷ֬อ ৴པੑɾݕূɾ࣭ͷ֬อ ίετ "*ۦಈ։ൃΛߦ͏্Ͱਏ͍͜ͱ
࠷ۙͷಈ͖
$PEF3BCCJU74$PEFػೳ֦ுϦϦʔε (JU)VC$PQJMPU$PEJOH"HFOUొ $MBVEF$PEF͕1SPϓϥϯ͔Βར༻Մೳʹ ,JSPϦϦʔε (" $PEFY$-*͕$IBU(15αϒεΫϦϓγϣϯରԠ $PEF3BCCJU$-*ϦϦʔε (JU)VC$PQJMPU$-*1SFWJFXϦϦʔε (PPHMF"OUJHSBWJUZϦϦʔε
ͳΜͱͳ͘ͷྲྀΕ (6* *%& $6* 74
ࢲ͕ͨͪཉ͔ͬͨ͠"*ۦಈ։ൃ
ࢲ͕ͨͪखʹೖΕͨ"*ۦಈ։ൃ
ίʔυੜ࢈ྔ͕૿͑ͯɺίʔυ࣭ɾཧղੑɾอकੑͳ Ͳผͷ࣍ݩͰτϨʔυΦϑ͕͋Δͱ͍͏ݒ೦ใࠂ͞Εͯ ͍·͢ɻͨͱ͑ɺϨϏϡʔ࣌ؒ౷߹͕࣌ؒ͘ͳͬͨ ͱ͍͏࣮ݧ݁Ռ͋Γɻ 5IF*NQBDUPG(FOFSBUJWF"*PO$PMMBCPSBUJWF 0QFO4PVSDF4PGUXBSF%FWFMPQNFOU&WJEFODF GSPN(JU)VC$PQJMPU IUUQTBSYJWPSHBCT
"*૿෯ثͰ͋Δ ߴύϑΥʔϚϯεͷ৫ΛΑΓߴ͘ ۤઓ͢Δ৫ͷػೳෆશΛ֦େ͢Δ "*ہॴతͳੜ࢈ੑ্ΛͨΒ͕͢ɺԼྲྀͷࠞཚʹ ҿΈࠐ·Ε͕ͪͩ %03"4UBUFPG"*BTTJTUFE4PGUXBSF %FWFMPQNFOUΑΓ IUUQTDMPVEHPPHMFDPNSFTPVSDFTDPOUFOUEPSBBJBTTJTUFE
TPGUXBSFEFWFMPQNFOUSFQPSU IMKBΑΓ
ͭ·Γͷࠜݯʜ
ͭ·Γͷࠜݯʜ ͔ͯ͠͠ɿࢲ ͨͪʣʁ
ϓϥοτϑΥʔϜ৫Λ࣋ͭҎ্Ͱ"*ಋೖࡁΈʢͨͩ͠ɺ ׂͷ৫ίʔυੜΛ৴པ͍ͯ͠ͳ͍ʣ "*ʹΑͬͯίʔυͷੜमਖ਼্͕ΔҰํɺϨϏϡʔɾ ςετɾ࿈ܞମ੍͕͍͔ͭͳ͍ͱɺϦϦʔε࣭͕༳Β͙ %03"4UBUFPG"*BTTJTUFE4PGUXBSF %FWFMPQNFOUΑΓ IUUQTDMPVEHPPHMFDPNSFTPVSDFTDPOUFOUEPSBBJBTTJTUFE TPGUXBSFEFWFMPQNFOUSFQPSU
IMKBΑΓ
コードレ ビ ューの課題
ίʔυϨϏϡʔͷΑ͋͘Δ త ؔॴԽ ϘτϧωοΫ "*ίʔυ
ϨϏϡʔͷత WJBΰʔϧͷεςοϓΛॻ͖ग़͢ਓʮࣸਅ"$ʯ
ίʔυϨϏϡʔͱʁ w ଞͷ։ൃऀ͕ॻ͍ͨίʔυΛୈࡾऀͷࢹͰνΣοΫ͠ɺ࣭ɾՄಡੑɾอ कੑɾ҆શੑΛߴΊΔͨΊͷϓϩηε w νʔϜ͕ΑΓྑ͍ίʔυΛॻͨ͘Ίͷֶशɾڞ༗ɾ࣭อূͷΈ
ίʔυϨϏϡʔΨΠυϥΠϯͷ༗ແ w ҙ֎ͱͳ͍৫ଟ͍ w ϨϏϡΞʔʹΑͬͯɺݟΔࢹ͕όϥόϥ "͞Μݫ͍͔͠Βɺ"͞Μ͕͍ͳ͍࣌ʹ#͞Μʹग़ͦ͏ w ϨϏϡʔˠमਖ਼ˠϨϏϡʔˠमਖ਼ˠʜͷແݶϧʔϓ
ϨϏϡʔͷؔॴԽ WJBؔͷؔॴ/Pʮࣸਅ"$ʯ
͜ΜͳϨϏϡʔϓϩηεʹͳ͍ͬͯ·ͤΜ͔ʁ w ৬ڃɺܦݧ্͕ͷਓ͕νΣοΫ͢Δඞཁ͕͋Δ w ίʔυϨϏϡʔ௨աෆ۩߹ͳ͠อূ w ઃܭࢥͳͲΛࡉ͔͘٧ΊΒΕΔ
͜ΜͳϨϏϡʔϓϩηεʹͳ͍ͬͯ·ͤΜ͔ʁ w ৬ڃɺܦݧ্͕ͷਓ͕νΣοΫ͢Δඞཁ͕͋Δ w ίʔυϨϏϡʔ௨աෆ۩߹ͳ͠อূ w ઃܭࢥͳͲΛࡉ͔͘٧ΊΒΕΔ Ұ൪্ͷਓͷίʔυ୭͕νΣοΫ͢Δʁ
͜ΜͳϨϏϡʔϓϩηεʹͳ͍ͬͯ·ͤΜ͔ʁ w ৬ڃɺܦݧ্͕ͷਓ͕νΣοΫ͢Δඞཁ͕͋Δ w ίʔυϨϏϡʔ௨աෆ۩߹ͳ͠อূ w ઃܭࢥͳͲΛࡉ͔͘٧ΊΒΕΔ όάͳ͠ςετͷׂ
͜ΜͳϨϏϡʔϓϩηεʹͳ͍ͬͯ·ͤΜ͔ʁ w ৬ڃɺܦݧ্͕ͷਓ͕νΣοΫ͢Δඞཁ͕͋Δ w ίʔυϨϏϡʔ௨աෆ۩߹ͳ͠อূ w ઃܭࢥͳͲΛࡉ͔͘٧ΊΒΕΔ 13ఏग़ΛҤॖ͠ɺ৺ཧత҆શੑΛଛͳ͏
ϨϏϡʔͷϘτϧωοΫԽ WJBۀϑϩʔɾϓϩηεͷࢿྉʮࣸਅ"$ʯ
ϨϏϡʔ୲ऀͷݻఆԽ w ϨϏϡʔ͕γχΞΤϯδχΞɺ$50ͷׂʹͳ͍ͬͯΔ w ৬Ґ্͕ͩͱɺλεΫଟ͍ɻͳͷʹϨϏϡʔ·ͰՃΘΔ w ϛʔςΟϯά֎ग़ͰϨϏϡʔ͕ࢭ·Δ IUUQTXXXZPVUVCFDPNXBUDI WHMG#,-23&
"*ίʔυ
$PEF3BCCJUͷϒϩάΑΓ WJBίʔυΛॻ͘ΑΓಡΉ΄͏͕͍͠ಛʹ"*͕ॻ͍ͨίʔυ "*͕ॻ͍ͨίʔυΛಡΉ͜ͱͷ͠͞ ϨϏϡʔͷաͳґଘ "*ʹΑΔग़ྗͷٗᛋతͳਖ਼֬ੑ
#SJBO,FSOJHIBOʢ6OJYڞಉ։ൃऀɺ5IF $1SPHSBNNJOH-BOHVBHF ͷڞஶऀʣ σόοάίʔυΛॻ͘ͱ͖ͷഒ͍͠ɻ͕ͨ͠ ͬͯͦͷఆٛʹै͏ͳΒɺίʔυΛͰ͖ΔݶΓෳࡶ ʹॻ͚ɺͦͷίʔυΛσόοάͰ͖Δ΄Ͳࣗݡ ͘ͳ͍͜ͱʹͳΔɻ
"*ʹΑΔίʔυϨϏϡʔ
ίʔυͷอकੑɺύϑΥʔϚϯεɺνʔϜͷίʔσΟϯά ΨΠυϥΠϯʹԊ͍ͬͯΔ͔Ͳ͏͔ ࣮͕Ϗδωεཁ݅ʹ߹͍ͬͯΔ͔Ͳ͏͔ ίʔυΛ௨ͨ͡φϨοδͷڞ༗ ϨϏϡʔͱʁ
-JOUπʔϧɾϧʔϧϕʔε ϕετϓϥΫςΟεʹԊͬͨϨϏϡʔ $-"6%&NEɺνʔϜͷίϯςΩετʹԊͬͨϨϏϡʔ ίʔυϨϏϡʔͷਐԽ
--.ͷਐԽʹΑͬͯѻ͑ΔίϯςΩετྔ૿͍͑ͯΔ ใ͕૿͑Δͱɺݟͳͯ͘ྑ͍ॴͷ·Ͱݟ͑Δ ϨϏϡʔൣғ͕΅͚ɺࢦఠ͕͘ͳΔ ίϯςΩετͷ՝
--.ɺϢʔβʔ͔Βʮྑ͍ʯͱݴΘΕΔͱใु্͕͕Δ ๙ΊΔ͚ͩɺϙδςΟϒͳ͚ͩͷํ͕--.ʹͱͬͯྑ͍ ϨϏϡʔɺϢʔβʔ͕ݏͬͨͱͯ͠ඞཁͳ͜ͱΛࢦఠ͢Δ --.ͷ՝
ίϯςΩετΛ͍͔ʹߜΓࠐΉ͔ ඵͷճͰͳ͘ɺ࣌ؒΛ͔͚ͭͭదͳճʢεϩʔ"*ʣ νϟοτʹΑΔϑΟʔυόοΫΛੵ͠ɺΑΓνʔϜʹϑΟ οτ͍ͯ͘͠ $PEF3BCCJUͷࢦ͢ํ
ɿϨϏϡΞʔৗʹඞཁͰ͢ "*ίʔυϨϏϡʔΛऔΕ·ͤΜ ϨϏϡΞʔΛ௨աόάθϩͰ͋Γ·ͤΜ "*ίʔυϨϏϡʔɺਓͷϨϏϡʔ࣌ؒɾෛՙΛܰݮ͢ ΔଘࡏͰ͢
"*ίʔυϨϏϡʔʹΑΔ ։ൃମݧͷ্
ɿਓͷॻ͍ͨίʔυΛಡΉͷ͠ΜͲ͍ ҎલݴͬͨࢦఠΛ܁Γฦ͞ΕΔ ཁ݅Λཧղ͠ɺదͳϨϏϡʔΛߦΘͳ͍ͱ͍͚ͳ͍ͱ͍͏ ࣗͷλεΫผʹʢͬͱʣ͋Δͷʹ࣌ؒΛऔΒΕΔ ݏͳ͜ͱΛݴΘΕΔɺݴΘͳ͍ͱ͍͚ͳ͍
ղɿ໘ͳ͜ͱ"*ʹΒͤΑ͏ جຊతͳߏจϛεʢλΠϙɺΠϯσϯτʣͷݕग़ ϕετϓϥΫςΟεʹجͮ͘ࢦఠ ίʔσΟϯάΨΠυϥΠϯʹ߹Θͤͨࢦఠ ཁ݅ɾࣗࣾΨΠυϥΠϯʹ߹Θͤͨࢦఠ
։ൃମݧͷ্ͱʁ ετϨεͳ͘։ൃΛଓ͚ΒΕΔ ࣗͷࣄʹूதͰ͖Δ Δ͖͜ͱ͕खؒͳ͘खʹೖΔ
ϨϏϡʔ͔ΒมΘΔ։ൃମݧ ਓͷϨϏϡʔલʹ໌Β͔ͳ͕ղܾࡁ ύϑΥʔϚϯεɾηΩϡϦςΟͷ՝͕ղܾࡁ ਓɺίϛϡχέʔγϣϯΛҙࣝͨ͠ϨϏϡʔʹઐ೦
$PEF3BCCJUʹ͍ͭͯ
"*ίʔυϨϏϡʔαʔϏε ੈքҰΠϯετʔϧ͞Ε͍ͯΔ"*(JU)VC"QQ Ҏ্ͷ৫Ͱར༻த $PEF3BCCJUʁ
ΦʔϓϯͳϦϙδτϦͰ͋Εແྉ 74$PEFػೳ֦ுແྉ $-*൛ແྉ ແྉͰ͑Δ$PEF3BCCJU
૬ҧ ڥ ର ྉۚ ίϯςΩετ 13൛ ϒϥβ 13͞Εͨίʔυ 044ແྉ ϓϥΠϕʔτ༗ྉ
ৄࡉͳઃఆ ৫ͷઃఆ $-*൛ $-* ϩʔΧϧͷमਖ਼ίʔυ ʢະίϛοτؚΉʣ ແྉ 1SPܖͰϨʔτVQ جຊతͳ ϕετϓϥΫςΟε 74$PEF൛ (6*
ίʔυϨϏϡʔઐۀΏ͑ͷࡉ͔ͳΧελϚΠζ ࠷৽ɾෳͷ"*ϞσϧΛར༻ɾΧελϚΠζͨ͠ϨϏϡʔ σʔλΛֶशͤͣɺϨϏϡʔʹར༻ͨ͠ίʔυଈഁغ $PEF3BCCJUͷಛ
13֓ཁɾαϚϦʔɾγʔέϯεਤͷࣗಈੜ 'JYXJUI"*ʢ"*ΤʔδΣϯτ͚ϓϩϯϓτੜʣ .$1ΫϥΠΞϯτࡌ "*ۦಈ։ൃº$PEF3BCCJU
CodeRabbitの効果
$PEF3BCCJUಋೖޮՌ Ұ࣍ϨϏϡʔࣗಈԽͰͱ࣌ؒΛେ෯ॖ w δϟϯϘ w ΫϥυαΠϯ ਓతͱ࣌ؒͷݮ w 40,6%"/ w
ϩάϥϑ ػցతνΣοΫ"*ʹͤɺຊ࣭ٞʹूத w 3065& w ΧϯλʔϫʔΫε ϨϏϡʔ࣭ͷ্ w 3FMJD w ΫϥυαΠϯ ϘτϧωοΫղফͱૣظϑΟʔυόοΫͷ࣮ݱ w ΧϯλʔϫʔΫε w 4BMFT/PX ։ൃϓϩηεϫʔΫϑϩʔมֵ w 3ZP)*("4)*("8" w ϑΟϤϧυϒʔτΩϟϯϓ ਫ਼ਆతෛ୲ݮͱφϨοδڞ༗จԽ͕ఆண w δϟϯϘ w 4BMFT/PX ৺ཧෛՙܰݮͱֶशଅਐ w ·ͩ͠ w 3FMJD
"*ͱਓͷϨϏϡʔͷ୲ "*ίʔυϨϏϡʔ͕ਐԽͯ͠ਓͷϨϏϡʔͳ͘ͳΓ·ͤΜ͕ɺ"*͕ସͰ͖Δ ྖҬ૿͍͑ͯ·͢ 🐰 🕺 ਓ͕ݟΔલͷίʔυ࣭Λ͑Δׂ ཁ݅Λຬ͍ͨͯ͠Δ͔ɺاۀͷίʔσ ΟϯάΨΠυϥΠϯʹԊ͍ͬͯΔ͔֬ ೝ ࠶ར༻ੑɺՄಡੑɺอकੑɺҰ؏ੑ
Λ֬ೝ ΑΓνʔϜʹద߹ͨ͠ίʔυʹͳͬ ͍ͯΔ͔Λ֬ೝ
ਓͷϨϏϡʔͷҐஔ͚ͮΛݟͦ͏ ্࣭ ϝϯςφϯεੑ ڭҭɾ φϨοδڞ༗ νʔϜͷ৴པߏங ৺ཧత҆શੑɾจԽ
·ͱΊ w ϨϏϡʔେࣄ͚ͩΕͲɺ՝ଟ͍ w "*ϨϏϡʔΛ׆༻͠ɺ։ൃମݧΛ্͠·͠ΐ͏ w $PEF3BCCJU"*ίʔυϨϏϡʔαʔϏε
🐰🐰͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠🐰🐰 ϘΫͷ໊લʁ
Α͋͘Δ࣭5JQT
2"*ԿΛ͍ͬͯ·͔͢ʁ 0QFO"*·ͨ"OUISPQJDͰ͢ʢͨͩ͠(FNJOJͳͲධՁ͍ͯ͠·͢ʣ IUUQTTUBUVTDPEFSBCCJUBJ
2ಠࣗͷ"*ͷ"1*Ωʔ͑·͔͢ʁ ͪΖΜ͑·͢ɻͨͩ͠ηϧϑϗετʢ Ϣʔβʔʣʹͯ w 0QFO"* w "[VSF0QFO"* w "84#FESPDL w
"OUISPQJD
2ॻ͖खʹΑͬͯ͠·͔͢ʁ ͠·ͤΜɻͨͱ͑$50૬खͰλΠϙΛࢦఠ͠·͢💪🐰
2ϓϩάϥϛϯά͚Ͱ͔͢ʁ ͍͑ɺΠϯϑϥʢ5FSSBGPSNɺLTɺ%PDLFSɺ$MPVE'PSNBUJPOͳͲʣ ରԠ͍ͯ͠·͢ υΩϡϝϯτϨϏϡʔʹ͑·͢
ϨϏϡΞʔΛΧελϚΠζͰ͖·͢ ΦϏϫϯɾέϊʔϏ෩ ϧϑΟ෩ αΪ෩