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プログラマーDevinは PHPerの夢を見るか?
Search
Shinya Saita
June 28, 2025
Programming
1
120
AIプログラマーDevinは PHPerの夢を見るか?
PHPカンファレンス2025の登壇資料です。
Shinya Saita
June 28, 2025
Tweet
Share
More Decks by Shinya Saita
See All by Shinya Saita
OSS開発者からバックオフィス系Saasに転職して感じたPHPの価値の違い
shinyasaita
0
100
Other Decks in Programming
See All in Programming
PostgreSQLのRow Level SecurityをPHPのORMで扱う Eloquent vs Doctrine #phpcon #track2
77web
2
320
なぜ「共通化」を考え、失敗を繰り返すのか
rinchoku
1
510
GoのGenericsによるslice操作との付き合い方
syumai
3
690
イベントストーミング図からコードへの変換手順 / Procedure for Converting Event Storming Diagrams to Code
nrslib
1
380
LINEヤフー データグループ紹介
lycorp_recruit_jp
0
880
Java on Azure で LangGraph!
kohei3110
0
170
エラーって何種類あるの?
kajitack
5
310
アンドパッドの Go 勉強会「 gopher 会」とその内容の紹介
andpad
0
260
Cline指示通りに動かない? AI小説エージェントで学ぶ指示書の書き方と自動アップデートの仕組み
kamomeashizawa
1
570
A2A プロトコルを試してみる
azukiazusa1
2
1.1k
『自分のデータだけ見せたい!』を叶える──Laravel × Casbin で複雑権限をスッキリ解きほぐす 25 分
akitotsukahara
1
540
20250628_非エンジニアがバイブコーディングしてみた
ponponmikankan
0
410
Featured
See All Featured
Stop Working from a Prison Cell
hatefulcrawdad
270
20k
Documentation Writing (for coders)
carmenintech
72
4.9k
A better future with KSS
kneath
239
17k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
48
5.4k
Gamification - CAS2011
davidbonilla
81
5.3k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
[RailsConf 2023] Rails as a piece of cake
palkan
55
5.6k
Being A Developer After 40
akosma
90
590k
Navigating Team Friction
lara
187
15k
Rails Girls Zürich Keynote
gr2m
94
14k
Making the Leap to Tech Lead
cromwellryan
134
9.3k
For a Future-Friendly Web
brad_frost
179
9.8k
Transcript
มଶΤϯδχΞɹ੪ాਅ "*ϓϩάϥϚʔ%FWJO 1)1FSͷເΛݟΔ͔ʁ 1)1$POGFSFODF QIQDPOUSBDL
λΠτϧখઆͷύϩσΟ
λΠτϧখઆͷύϩσΟ w ۚՔ͗ͷओਓެ͕ΞϯυϩΠυΛङΔετʔϦʔ w ਓͱΞϯυϩΠυͷ۠ผ͕͖ͭʹ͍͘ੈͷத w ࡞தͰײͷมԽΛଅ࣭͢Λ͢Δ͜ͱͰ ͦΕʹର͢ΔԠͰਓ͔ؒ൱͔Λஅ͍ͯͨ͠ w ਓͱΞϯυϩΠυͷҧ͍ͬͯԿͳΜͩΖ͏ʁ
ͱࢥ͏ಡྃײΛಘΔ4'খઆ
࠷ۙͷ"*ͷߴੑೳԽʹ ࢥ͏ͷ
ਓͱ"*ͷҧ͍ͬͯ ԿͳΜͰ͠ΐ͏ʁ 2VBOUJD%SFBN2VBOUJD%SFBNBOEUIF2VBOUJD%SFBNMPHPBSFUSBEFNBSLTPG2VBOUJD%SFBN
ਓͱ"*ͷҧ͍ͬͯ ԿͳΜͰ͠ΐ͏ʁ ΤϞ͞ͱ͔ʁ 2VBOUJD%SFBN2VBOUJD%SFBNBOEUIF2VBOUJD%SFBNMPHPBSFUSBEFNBSLTPG2VBOUJD%SFBN
͓લ୭ͶΜʁ
ࣗݾհ ໊લ ग़ ৬ۀ झຯ ಛٕ ੪ాਅ ژ όοΫΤϯυΤϯδχΞ 1)1+BWBTDSJQUগ͠(0
τϥϯϓूΊଞଟ ϚδοΫ ͍ͨ͞ɹ͠Μ
2JJUBهࣄॻ͍ͨΓ ͬͱόζͬͨهࣄˠ
ύϫϓϩ෩ʹΤϯδχΞεΩϧදݱͰ͖ΔπʔϧΛ࡞ͬͨΓ
ϙέϞϯΛ λʔϛφϧʹ දࣔ͢Δ γΣϧΛॻ͍ͨΓ IUUQTHJUIVCDPNTIJOZBQPLFNPOUFSNJOBMBSU .Z࠷ελʔϦϙδτϦˠ
τϥϯϓूΊͨΓͯ͠·͢ τϥϯϓͷղઆαΠτΛ ӡӦͯͨ͠Γ͠·͢
ͯ͞ɾɾɾ
Έͳ͞Μ "*ͬͯ·͔͢ʁ
"*ΤʔδΣϯτݩ w 0QFO"*Λච಄ʹੈք"*ઓࠃ࣌ʹಥೖ w ͢ͰʹԿඦͱ͍͏"*αʔϏε͕ੈͷதͰల։ w िؒܦͯใ͕ݹ͍ͱ͍͏ੈͷத
։ൃʹ͕͕Δ w $IBU(15ʹཔΊίʔυΛॻ͍ͯ͘ΕΔ w (JUIVC$PQJMPU͕ίʔυΛੜͯ͘͠ΕΔ w ʮ"*Λͬͯͳ͍ʯ͜ͱ͕ σΟεΞυόϯςʔδͱͳΔੈͷத
ຊͷςʔϚ w ੜ"*ͷ%FWJOʹ͍ͭͯৄ͘͠ͳΔ w 1)1FSͱͯ͠ͲΕ΄Ͳ༗༻ͳͷ͔Λհ͢Δ
ҙ w ຊϓϨθϯ%FWJOʹϑΥʔΧεΛ͍ͯͯ·͢ w ଞͷੜ"*ʹؔͯ͠ಛʹ৮Εͳ͍ͷͰྃ͝ঝ͍ͩ͘͞ w ࢲ%FWJOҎ֎ͷ"*͋·Γৄ͘͠ͳ͍Ͱ͢ w ͱ͍͍ͭͭ࠷ۙ$VSTPS"*͔Γ৮ͬͯ·͢
%FWJOͱʁ
%FWJOʹ͍ͭͯ w $PHOJUJPO͕ࣾੈքॳͷશࣗܕ"*ΤϯδχΞͱͯ͠ൃදͨ͠ w (JU)VC$PQJMPUͷΑ͏ͳίʔυิαδΣετͰͳ͍ w ༩͑ΒΕͨใΛݩʹࣗతʹ։ൃௐࠪΛߦ͑Δͷ͕ಛ w ͍ΘΏΔΤʔδΣϯτܕͷ"* w
(JUIVCͷใࢀর13ͷ࡞͕Մೳ w ׂͱߴ͍ʢϲ݄ʣ ˠैྔ՝ۚͷϓϥϯొ͍͘͢͠ͳΔ
؆୯ʹݴ͏ͱɾɾɾ w νϟοτͷ͜͏ʹػͯ͘͠ΕΔΤϯδχΞʢ"*ʣ͕͍Δ w ࣮ࡍ4MBDLͰґཔ͕ग़ͤΔ w ʮ͜Ε͍ͬͯͩ͘͞ʯͱࢦࣔΛඈ͢ͱ࡞ۀΛͯ͘͠ΕΔ w ʮ͜ͷόάΛͯ͠ʯ w
ʮ͜͜ͷϢχοτςετ࡞ͬͯʯ w ʮ͜ͷΤϥʔͷݪҼௐࠪͯ͠ʯ
؆୯ʹݴ͏ͱɾɾɾ w νϟοτͷ͜͏ʹػͯ͘͠ΕΔΤϯδχΞʢ"*ʣ͕͍Δ w ࣮ࡍ4MBDLͰґཔ͕ग़ͤΔ w ʮ͜Ε͍ͬͯͩ͘͞ʯͱࢦࣔΛඈ͢ͱ࡞ۀΛͯ͘͠ΕΔ w ʮ͜ͷόάΛͯ͠ʯ w
ʮ͜͜ͷϢχοτςετ࡞ͬͯʯ w ʮ͜ͷΤϥʔͷݪҼௐࠪͯ͠ʯ ศརʂ
ฐࣾόοΫΦϑΟεܥ4BBTܥاۀ w ͝ͱʹ༻ݴޠҟͳΔ͕ɺ1)1ͷͷଟ͋Δ w ࢲࣗ1)1ͷϓϩμΫτʹؔΘ͍ͬͯΔ w Ͳ͜ͱ͍Θͳ͍͕ɺ̋౻ݡҰ͞Μͱԣ̋Նࢠ͞Μ͕$.ͬͯΔͱ͜ w 1)1ॻ͖ͳ͕Β "*׆༻ͷࢼߦࡨޡ͍ͯ͠Δ
ࢲʑ
%FWJOͷՄೳੑΛ ୳͍ͯ͠Δ
ՄೳੑΛ୳͍ͯ͠Δ w Կ͕ಘҙͳͷ͔ w ͲΜͳ͜ͱΛཔΉͱޮՌ͕ߴ͍ͷ͔ w ࢼߦࡨޡͷதͰݟ͖͑ͯͨͷΛ հ͍͖ͯ͠·͢
%FWJOͷେ͖ͳಛ
φϨοδΛஷΊΔ͜ͱ͕ग़དྷΔ
φϨοδΛஷΊΔͱʁ w લఏ݅ΛઃఆͰ͖Δ w ʮ͜ΕΛ͢Δͱ͖ඞͣ͜Εʹै͍ͬͯͩ͘͞ʯ w FY ιʔείʔυΛੜ͢Δͱ͖ίʔσΟϯάنʹै͍ͬͯͩ͘͞ w ଞʹࣄલʹΠϯϓοτ͓͍ͯͯ͠΄͍͜͠ͱஷΊ͓͚ͯΔ
φϨοδΛͬͯ ྑ͔ͬͨҰྫ
ϦʔμϒϧίʔυΛಡΜͰϦϑΝΫλϦϯάͯ͠ w ΦϥΠϦʔͷ໊ஶͰ͋ΓΤϯδχΞͷόΠϒϧ w ͦΕΛ%FWJOʹ*OQVU͢Δ w ͦΕΛݩʹϦϑΝΫλϦϯάΛͯ͠Ͷ ͱ͓ئ͍͢Δ w өͨ͠13͕࡞͞Εͨ
ͦͷ̍ มߋΛநग़ͯ͠ ֓ཁʹ·ͱΊͯ͘Ε͍ͯΔ
ͦͷ̎ηϧϑϨϏϡʔͯ͠ w ͓ͦΒ͘ਓ͕ͬͨ߹͋·ΓΒͳ͍ಈ͖ w ผਓ֨Ͱݾͷ13ʹରͯ͠ΞυόΠεΛೖΕͯͱґཔ w ϚδͰผਓ͔֨ͷΑ͏ʹࢦఠ͕ඈΜͰ͖ͨ w ˠਓ͕ͬͯͨΒʮࣗͰΓͳΕʯͱͳΔͭ
ʮίʔυͷҙਤ͕ΑΓ໌֬ʹͳΔΑʯͱ ͕ࣗॻ͍ͨίʔυʹποίϛΛ ೖΕ͍ͯΔͷ໘ന͍
ͦͷࣗͷվળΛઆ໌ͯ͠ w ͋ͳͨͷվमʰϦʔμϒϧίʔυʱͷ Ͳͷ෦ʹ֘͢ΔΜͰ͔͢ʁ ͱ͍͏ͷΛͪΌΜͱઆ໌͍ͯͩ͘͠͞ͱґཔ w ʮ͜͏͍͏߲ͷ෦Λөͯ͠·͢ɻ ɹͪͳΈʹԿϖʔδͷ͜ͷ෦Ͱ͢ʯ ͱ͕͑ؼ͖ͬͯͨ
None
ධՁ͢ΔզʑຊʹͦΕ͕ ϦϑΝΫλϦϯάͱͯ͠ҙຯΛ ͳ͍ͯ͠Δͷ͔Θ͔Δ େมྑ͍
ͦͷϢχοτςετΛՃͯ͠ w ϦϑΝΫλϦϯάͳͷͰϏδωεϩδοΫͷ݁ՌΛม͍͚͑ͯͳ͍ w ຊʹͦ͜େৎʁͱ͍͏ͷΛ୲อ͍ͨ͠ͷͰ ϢχοτςετΛ࡞͍ͯͩ͘͠͞ͱґཔ w ͠65࡞Δͷ͕͔ͬͨ͠Βɺ ͞ΒͳΔϦϑΝΫλϦϯά͍ͯͩ͘͠͞ w
65ͷ࣮ߦίϚϯυͱ࣮ߦ݁Ռڭ͑ͯͶ
खΛೖΕͨ෦ͷ65Λ࡞ ͦͯ͠ՃͷϦϑΝΫλϦϯά࣮ࢪ ʢΫϥεΛׂͨ͠ʣ
࣮ߦखॱͱҙ ͦͷ࣌ͷ࣮ߦϩάఴࡁΈ
ͦͷৼΓฦΓͷ࣮ࢪ w ࣮ࡍʹ"*ͳͷͰͦΜͳ͜ͱແ͍ͩΖ͏ͱࢥ͍ͭͭ ԿΛֶΜͩʁԿʹۤ࿑ͨ͠ʁΛώΞϦϯά w ʮࣗΛ๙Ί͍ͨ෦ʯͱ ʮޙഐ͕Ͱ͖ͨΒҾ͖ܧ͍͗ͨ͜ͱʯฉ͘ w ࣍ػձ͕͋ΕԿʹઓ͍ͨ͠ʁ w
࠷ޙʹϫγͷࢦࣔͷग़͠ํదͬͨʁ w ਓͩͬͨΒฉ͖͍ͨ͜ͱશ෦ฉ͘
શͯ͑ͯ͘Εͨʂ
ͬͯΈͨײ w ͪ͜Β͕Γ͍ͨ͜ͱΛ͑Δͱجຊߦಈͯ͘͠ΕΔ w ͦͷࡍʹલఏࣝͷΠϯετʔϧ͕͋Δͱ͔ͳΓҙਤ௨Γʹಈ͍ͯ͘ΕΔ w ਓͰͰ͖ͳ͍ʮผਓ֨ͰࣗͷίʔυΛϨϏϡʔ͢Δʯ͕ ݸਓతʹྑ͔ͬͨ w ৼΓฦΓͷ༰ΛಡΜͰΔͱࣗͰؾ͖͕ͮ৭ʑ͋Δ
w ୠ͠ɺίʔυͷਫ਼·ͩ·ͩͳॴΞϦ w ࠓޙ৭ʑͱՄೳੑΛ୳͍͖͍ͬͯͨ
ଞʹɾɾɾ
ϦΞϧλΠϜ࣌ࠁදΞϓϦΛ࡞ͬͨΓ
ςετσʔλΛ࡞ͬͯΒͬͨΓ
13ͷίʔυϨϏϡʔΛͯ͠ΒͬͨΓ ࣗͷίʔυΛ٬؍తʹηϧϑϨϏϡʔͰ͖Δ
ΤϯδχΞ͕͍ͯ͠Δ ຆͲͷ࡞ۀՄೳ
ͨͩ͠ɾɾɾ w ˠಘҙ͕ͩɺطଘͷιʔείʔυͷཧղෆಘҙ w ϦϑΝΫλϦϯάͰ͖Δ͕༷มߋʹऑ͍ w Կނ͜ͷγεςϜ͕͋Δͷ͔Λཧղͯ͠ͳ͍ w ٕज़ྗδϡχΞΤϯδχΞϨϕϧ w
ڭՊॻʹॻ͍ͯ͋Δ͜ͱͯ͘͠ΕΔ w ؾΛར͔ͤͨ͜ͱ͍͠ w ͨͩ͠ɺܦݧҭͯΒΕΔʢφϨοδʣ
ޮՌతͳ ϓϩϯϓτͷ༩͑ํ
ͬͯ΄͍͜͠ͱΛγϯϓϧʹ w ʮ͜ΕΛ͍͚ͬͯͳ͍ʯͰͳ͘ʮ͜ΕΛͬͯ΄͍͠ʯΛ͑Δ w Օॻ͖Ͱظ͢Δಈ࡞Λྻڍ͍ͯ͘͠ w ͋Μ·Γ;Θͬͱ͛Δͱ;Θͬͱͨ͠Ռ͕͕͋ͬͯ͘Δ w ιʔείʔυ͕ଟ͍ϦϙδτϦͩͱൣғΛߜͬͨ΄͏͕ྑ͍
͜Ε͙Β͍ͩͱͦͷ௨Γʹ࡞ͬͯ͘ΕΔ ͜͜Λม͑Δͱ։ൃݴޠ͕ ༰қʹมߋͰ͖Δ 1)1ͷཱɾɾɾ
ୠ͠ɺ٧Ί͕͍ ͕ग़དྷͯͳ͍ʂ ʢࢦࣔͯ͠ͳ͍͔ΒͨΓલʣ
Ͱޙ͔Βमਖ਼͢Εྑ͍
͋ͱ͔Βيಓमਖ਼ ͢Εྑ͍ ࣮ࡍͷਓͦ͏
1)1FSʹଞʹ͍ΖΜͳ༗ޮखஈ͕ w ·ͣ6OJU5FTUॻ͍ͯ͘ΕΔͷ͕୯७ʹྑ͍ w ͦͷͨΊʹΫϥεׂͯ͘͠ΕΔ w ϦϑΝΫλϦϯάͰ͖Δ w Ξϊςʔγϣϯͨ͠ΓɺλΠϓώϯτՃͨ͠Γ w
όʔδϣϯΞοϓରԠͰ͖Δ w 1)1͚ͩ͡Όͳ͘ɺ1)14UBO1)16OJU w ٯʹ5%%Ͱ͖ΔΜ͡ΌͶɾɾɾͱ͍͏رʢ·ͩͬͯͳ͍ʣ ϓϩμΫτίʔυॻ͍ͨ͋ͱʹ ਵ͢Δ࡞ۀ͓ئ͍ʂͯͰ͖Δ
ຯʹҰ൪ॿ͔ͬͨͷ
มߋʹΑΔӨڹௐࠪ w ʮ%#ͷΧϥϜ໊Λม͍͚͑ͨͲɺӨڹड͚Δͱ͜Ζநग़ͯ͠ʯͱ ࢦࣔΛ͛Δͱʮ͜͜Ͱʯͱڭ͑ͯ͘ΕΔ w ͨͩ͠ɺൣғ͕͗͢Δͱݟམͱ͋͠ΔͨΊ ʮ·ͣ͜ͷσΟϨΫτϦͰ͋Γ·͔͢ʁʯͱॱΛͬͯฉ͘ͱ˕
͓ؾ͖ͮͷํ ͍Βͬ͠ΌΔ͔Ͱ͕͢
1)1͔Ͳ͏͔"*ʹͱͬͯࠣࡉͳ w ٕज़తͳ՝Λղܾ͢ΔͨΊͷखஈͱͯ͠࠷ऴతʹݴޠԿʹ͢Δʁͷ͑ w ٯʹదͳखஈΛ͏ͨΊʹݴޠબผΛͤΔํ๏͋Γ w ͜ΕͬͯγεςϜ։ൃͷࠜຊͰɾɾɾʁ
ͪͳΈʹɾɾɾ w $IBU(15ʹಘҙͳݴޠϥϯΩϯάΛฉ͘ͱ 1)1Ґ w ʮ1)1FSͳΜ͚ͲʙŧŽŧŽŕʯͱฉ͘ͱ ٸʹͯ͠Ґʹ্͕Δ w %FWJOʹಉ͜͡ͱΛ͢ΔͱʮҐͰ͢ʯͱ ݴͬͯɺஅݻͱͯ͠ม͑ͳ͍
˞ͦͦτϨϯυͷݴޠ͕"*ڧ͍
·ͱΊ w %FWJOࢦࣔʹΑͬͯඇৗʹ͍͍ύϑΥʔϚϯεΛग़ͯ͘͠ΕΔ w ҰํͰɺ৽ਓͩͳʔͱࢥ͏Α͏ͳߦಈऔΔ w Ͱɺզʑ͕ࠜؾΑ͖͘ఴ͑ύϑΥʔϚϯε্͕ͬͯ͘Δ w 1)1ͰͦΕҎ֎Ͱ༗༻ʹ͑Δ w
͏͜Ενϟοτͷ͜͏ଆʹਓ͕͍ΔͷͱมΘΒͳ͍
"*ͰϚΠϯυಉ͡ w ී௨ʹ৽ਓΤϯδχΞʹ͓ئ͍͢Δ࣌ʹ ҙ͍ࣝͯ͠Δ͜ͱΛࢥ͍ฦ͢ w ͕ࣗઆ໌ෆͳ͜ͱਂງΓͨ͠΄͏͕ ྑ͍͜ͱ"*ʹର͖ͯͬ͠ͱͦ͏ w ݁ɺਓͱಉ͡Α͏ʹରቂ͠Α͏
ී௨ʹ৽ਓΤϯδχΞʹ ࣄΛ͓ئ͍͢Δ࣌ʹ ҙࣝ͢ΔϚΠϯυ͕େࣄ
͏͜͏ͳͬͨΒɾɾɾ
ਓͱ"*ͷҧ͍ͬͯ ԿͳΜͰ͠ΐ͏ʁ 2VBOUJD%SFBN2VBOUJD%SFBNBOEUIF2VBOUJD%SFBNMPHPBSFUSBEFNBSLTPG2VBOUJD%SFBN
ਓͱ"*ͷҧ͍ͬͯ ԿͳΜͰ͠ΐ͏ʁ ͬͺΓΤϞ͞ͱ͔ʁ 2VBOUJD%SFBN2VBOUJD%SFBNBOEUIF2VBOUJD%SFBNMPHPBSFUSBEFNBSLTPG2VBOUJD%SFBN
ʮਓͱ"*ͷҧ͍ͬͯͳΜͩΖ͏ʁʯʹ ڵຯΛ࣋ͬͨΒ͝Ұಡ͍ͩ͘͞
࠷ޙʹ w 1)1FSͷߴྸԽ͕࠷ۙͩͱײ͍ͯ͡Δ w ͜Ε"*ͷ׆༻͚ͩͰղܾͰ͖ͳ͍ w ׂͱຊؾͰ׆ੑԽ͢Δํ๏Λߟ͍͑ͨ w օ͞ΜؼͬͨΒ ʮϖνίϯ͓Ζ͔ͬͨͰʯͱ
Ί͍ͯͩ͘͞ ʢͷൃද͓Μͳ͔ͬͨΒɺ ɹਖ਼ʹݴͬͯେৎͰ͢ʣ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠