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
サービスクラスのありがたみを発見したときの思い出 #phpcon_odawara
Search
Hiromi Hishida
April 11, 2025
Programming
1.7k
7
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
サービスクラスのありがたみを発見したときの思い出 #phpcon_odawara
https://fortee.jp/phpconodawara-2025/proposal/118409a3-759c-437b-9133-7fa126e0683e
Hiromi Hishida
April 11, 2025
More Decks by Hiromi Hishida
See All by Hiromi Hishida
Maintaining an open-source library as a successor #phpxtokyo
77web
0
32
symfony/aiとlaravel/boost
77web
0
160
条件判定に名前、つけてますか? #phperkaigi #c
77web
2
1.4k
PostgreSQLのRow Level SecurityをPHPのORMで扱う Eloquent vs Doctrine #phpcon #track2
77web
2
1.4k
コード書くの好きな人向けAIコーディング活用tips #orestudy
77web
3
500
エンジニアのための 法規制への取り組み方 #healthtechmeetup
77web
9
2.9k
「それはhowなんよ〜」のガイドライン #orestudy
77web
11
3.5k
空が堕ち、大地が割れ、海が涸れた日~もしも愛用しているフレームワークが開発停止したら?~ #phperkaigi 2025
77web
2
2.1k
Beyond ORM
77web
11
2.7k
Other Decks in Programming
See All in Programming
FastAPI の並行処理モデルを完全に理解する
hoto17296
8
2.9k
AI Readyの正体はデータマネジメントだ メダリオン2.0の最前線
freee
PRO
0
360
DynamoDBの基礎を振り返りながらベクトル検索機能を理解する
musan
2
150
Dockerfile CMD for Node.js
grazie1999
0
120
仕様駆動開発へのトライを機に チームに適合する手法を模索し続けている話
freee
PRO
0
600
そこに3びきプロダクトがいるじゃろう——生成AI時代における“価値が届かない理由”の構造
kosuket
0
570
わからない話を追いかけたら、プログラミング言語を作る側にいた
ydah
3
540
S3 を使うアプリケーションをローカル完結で動かすことに全力を注いでみた / Running S3 Apps Offline
contour_gara
0
590
いまどきの Codex で開発する visionOS アプリの開発スタイルについて
karad
0
160
React本体のコードリーディング
high_g_engineer
1
150
KotlinConf Extended South Korea 2026 Keynote
l2hyunwoo
0
120
Claude Code全社展開のためにやったことn選~プラグイン302個・コミッター271人を支えるために~
kenchan
5
1.7k
Featured
See All Featured
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
350
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Agile that works and the tools we love
rasmusluckow
331
22k
How to Talk to Developers About Accessibility
jct
2
520
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
470
How to Think Like a Performance Engineer
csswizardry
28
2.7k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
900
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
480
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
520
Color Theory Basics | Prateek | Gurzu
gurzu
0
430
Google's AI Overviews - The New Search
badams
0
1.1k
Exploring anti-patterns in Rails
aemeredith
3
470
Transcript
UI"QSJM BUQIQDPO@PEBXBSB CZ!XFC αʔϏεΫϥεͷ͋Γ͕ͨΈʹؾ ͍ͨͱ͖ͷࢥ͍ग़
w 1)1FSྺɾ໊ݹࡏॅྺ w ʙϑϦʔϥϯε։ൃऀ w ࣗࣾαʔϏεاۀʹब৬ w స৬ΛܦͯɺݱࡏʢגʣϦϯέʔδϑϧα ΠΫϧΤϯδχΞϓϩμΫτΤϯδχΞ w
#UP#UP&༧ҩྍϓϩμΫτΛ࡞͍ͬͯ· ͢ w ຊ4ZNGPOZϢʔβʔձ /BHPZBQIQ w 1)1ΧϯϑΝϨϯε໊ݹແࣄऴྃ͠·͠ ͨʂ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ XFCʢͳͳ͏͐Ϳʣ
͘͡ w αʔϏεΫϥεͱʁ w ࢥ͍ग़ w ࠶ͼɺαʔϏεΫϥεͱʁ w αʔϏεΫϥεͲΜͳͱ͖ศར͔ʁ w
αʔϏεΫϥεʹԿΛॻ͚͍͍͔ʁ
αʔϏεΫϥεͱʁ
αʔϏεΫϥεͱʁ w .7$'SBNFXPSLͰ.Ͱ$Ͱͳ͍ͭͯ͢ w ओޠσΧ
αʔϏεΫϥεͬͯͳΜͰඞཁͳΜͰ͚ͨͬ͠ʁ w .7$'SBNFXPSLͷνϡʔτϦΞϧʹॻ͔Ε͍ͯͳ͍ w ୭͔ʹݴΘΕ͔ͨΒʁ w ϚωʔδϟʔςοΫϦʔυʹϨϏϡʔͰʮॻ͚ʯͱݴΘΕ͔ͨΒʁ w 9ͰPSRJJUBͰPS[FOOͰPS̋̋ຊͰPSΧϯϑΝϨϯεͰɺ͍͢͝ਓ͕ ʮॻ͍ͨ΄͏͕͍͍Αʯͱݴ͔ͬͯͨΒʁ
αʔϏεΫϥεͬͯͳΜͰඞཁͳΜͰ͚ͨͬ͠ʁ w 1)1ͳΜ͔ͩΒɺڀۃJOEFYQIQʹશ෦ϕλοͱॻ͚ಈ͘Θ͚Ͱ͢
IUUQTTQFBLFSEFDLDPNXFCLPOHHBEVPUJEBEJHBHFSFIBJHBIF SFUBSJNPTJNPBJZPOHTJUFJSVIVSFNVXBLVHBLBJGBUJOH[IJTJUBSBOVNCFS QIQFSLBJHJ
ࢥ͍ग़ͱ͋ΔࣾൃγεςϜ w ֤ͷࢧళʹ͍ΔελοϑϢʔβʔ w ຊࣾʹ͍ΔཧऀϢʔβʔ w ࢧళͰ͚ͨҊ݅݅ͣͭʹ͍ͭͯࢿࡐͷൃΛߦ͏ͨΊͷγεςϜ
ࢥ͍ग़ͱ͋ΔࣾൃγεςϜʮൃॻ1%'ʯ w ࢧళଆͰҹͯ͠ਐḿঢ়گͱ͔खॻ͖Ͱॻ͖ࠐΉ༻్ w ·ͩશ໘%9Ͱͳ͘ൃγεςϜͷΈ࡞͍ͬͯͨஈ֊ͳͷͰɺॳճγεςϜ ্Ͱൃͨ͋͠ͱࢴͰਐߦ w ͓٬༷ͱͷؒͰݴͬͨɾݴΘͳ͍ͰᎍΊΔ͜ͱ͕͋ΔͷͰݱࢴͷ্ ʹΔมߋཤྺΛେࣄʹ͍ͯͨ͠ w
طଘாථͷϨΠΞτΛ౿ऻͯ͠࡞ͬͯ΄͍͠
ࢥ͍ग़ͱ͋ΔࣾൃγεςϜʮൃॻ1%'ʯ w ཁ݅ w ࢧళϢʔβʔ͚ը໘ͷҊ݅ৄࡉ͔ΒҹͰ͖Δ w طଘாථͷϨΠΞτʹγεςϜ্ͷൃใΛೖΕΔ
ࢥ͍ग़ͱ͋ΔࣾൃγεςϜʮൃॻ1%'ʯ w ཁ݅ w ࢧళϢʔβʔ͚ը໘ͷҊ݅ৄࡉ͔ΒҹͰ͖Δ w طଘாථͷϨΠΞτʹγεςϜ্ͷൃใΛೖΕΔ w ཧऀϢʔβʔ͚ը໘͔Βൃॻ/PΛೖΕͨΒҹͰ͖Δ/&8
ࢥ͍ग़ͱ͋ΔࣾൃγεςϜʮൃॻ1%'ʯ w ʮཧऀϢʔβʔ͚ը໘͔Βൃॻ/PΛೖΕͨΒҹͰ͖Δ/&8ʯ w ͠ʮࢧళϢʔβʔ͚ը໘ʯͷ$POUSPMMFSʹ'BU$POUSPMMFSͰॻ͍͍ͯͨΒ ઈ w ͍1%'ੜॲཧΛ4FSWJDFʹ࣮͍ͯͨ͠
None
ࢥ͍ग़ͱ͋ΔࣾൃγεςϜʮൃॻ1%'ʯ ઌͷՃཁ݅ͳΜ͚ͩͲɺ࣮ େมͩΑͶʁͲΕ͙Β͍ೲظ Ԇͦ͠͏ʁ ͏Ͱ͖ͨΆΑʙ ೲظԆແ͍ͬ͢Αʙ ʜϚδʁʂ ΊͰͨ͠ΊͰͨ͠
ʢ࠶ͼʣαʔϏεΫϥεͱʁ
αʔϏεΫϥεͲΜͳͱ͖ʹศརʁ w ಉ͡ॲཧΛҟͳΔΤϯτϦϙΠϯτ͔Β͑ΔΑ͏ʹ࣮͍ͨ͠ͱ͖ w ҟͳΔը໘ w ҟͳΔϩάΠϯϢʔβʔछผ w ಉظॲཧWTඇಉظॲཧ w
XFCWTDMJ
None
IUUQTTQFBLFSEFDLDPNCMVF@HPIFJNPDIJQIQFSLBJHJ
αʔϏεΫϥεʹԿΛॻ͚͍͍͔ʁ
αʔϏεΫϥεʹԿΛॻ͚͍͍͔ʁ w ͲͷΤϯτϦϙΠϯτ͔Βདྷ͔ͨʹࠨӈ͞Εͳ͍ۀͷॲཧͷ༰
None
IUUQTXXXNBSUJOGPXMFSDPNFBB$BUBMPHTFSWJDF-BZFSIUNM &OUFSQSJTFBQQMJDBUJPOTUZQJDBMMZSFRVJSFEJ ff FSFOULJOETPGJOUFSGBDFTUPUIFEBUBUIFZ TUPSFBOEUIFMPHJDUIFZJNQMFNFOUEBUBMPBEFST VTFSJOUFSGBDFT JOUFHSBUJPO HBUFXBZT BOEPUIFST%FTQJUFUIFJSEJ ff
FSFOUQVSQPTFT UIFTFJOUFSGBDFTPGUFOOFFE DPNNPOJOUFSBDUJPOTXJUIUIFBQQMJDBUJPOUPBDDFTTBOENBOJQVMBUFJUTEBUBBOE JOWPLFJUTCVTJOFTTMPHJD5IFJOUFSBDUJPOTNBZCFDPNQMFY JOWPMWJOHUSBOTBDUJPOT BDSPTTNVMUJQMFSFTPVSDFTBOEUIFDPPSEJOBUJPOPGTFWFSBMSFTQPOTFTUPBOBDUJPO &ODPEJOHUIFMPHJDPGUIFJOUFSBDUJPOTTFQBSBUFMZJOFBDIJOUFSGBDFDBVTFTBMPUPG EVQMJDBUJPO "4FSWJDF-BZFSEF fi OFTBOBQQMJDBUJPOTCPVOEBSZBOEJUTTFUPGBWBJMBCMFPQFSBUJPOT GSPNUIFQFSTQFDUJWFPGJOUFSGBDJOHDMJFOUMBZFST*UFODBQTVMBUFTUIFBQQMJDBUJPOT CVTJOFTTMPHJD DPOUSPMMJOHUSBOTBDUJPOTBOEDPPSEJOBUJOHSFTQPOTFTJOUIF JNQMFNFOUBUJPOPGJUTPQFSBUJPOT
HFNJOJ༁ ΤϯλʔϓϥΠζΞϓϦέʔγϣϯ௨ৗɺ֨ೲ͢Δσʔλ࣮͢ΔϩδοΫʹରͯ͠ɺσ ʔλϩʔμʔɺϢʔβʔΠϯλʔϑΣʔεɺ࿈ܞήʔτΣΠͳͲɺ͞·͟·ͳछྨͷΠϯλ ʔϑΣʔεΛඞཁͱ͠·͢ɻతҟͳΔͷͷɺ͜ΕΒͷΠϯλʔϑΣʔεɺΞϓϦέʔ γϣϯͷσʔλͷΞΫηεૢ࡞ɺϏδωεϩδοΫͷݺͼग़͠ʹ͓͍ͯɺڞ௨ͷΠϯλϥ ΫγϣϯΛඞཁͱ͢Δ͜ͱ͕Α͋͘Γ·͢ɻ͜ΕΒͷΠϯλϥΫγϣϯෳࡶʹͳΔՄೳੑ͕ ͋ΓɺෳͷϦιʔεʹ·͕ͨΔτϥϯβΫγϣϯɺҰͭͷΞΫγϣϯʹର͢ΔෳͷԠ ͷௐΛ͏͜ͱ͕͋Γ·͢ɻͦΕͧΕͷΠϯλʔϑΣʔεʹݸผʹΠϯλϥΫγϣϯͷϩδ οΫΛهड़͢Δͱɺଟ͘ͷॏෳ͕ੜ͡·͢ɻ αʔϏεɺΞϓϦέʔγϣϯͷڥքͱɺΠϯλʔϑΣʔεͱͳΔΫϥΠΞϯτͷ؍͔
Βݟͨར༻Մೳͳૢ࡞ͷू߹Λఆٛ͠·͢ɻαʔϏεΞϓϦέʔγϣϯͷϏδωεϩδο ΫΛΧϓηϧԽ͠ɺͦͷૢ࡞ͷ࣮ʹ͓͍ͯτϥϯβΫγϣϯΛ੍ޚ͠ɺԠΛௐ͠·͢ɻ
ʢ࠶ͼʣαʔϏεΫϥεͱʁ w ಉ͡ॲཧΛҟͳΔΤϯτϦϙΠϯτ͔Β͑ΔΑ͏ʹ࣮͍ͨ͠ͱ͖ɺΤϯ τϦϙΠϯτݻ༗ͷࠩҟΛআ͍ͯڞ௨ͷૢ࡞ͷΈΛ࣮͢ΔΫϥε
۪ऀܦݧʹֶͼɺݡऀྺ࢙ʹֶͿ w ࢲ۪ऀͳͷͰܦݧ͔Βֶͼ·͕ͨ͠ɺօ͞Μྺ࢙ʹֶΜͰ΄͍͠ w ԶͷࢡΛӽ͍͚͑ͯʜʂ
͑ʁ̋̋ݪଇ̋̋ຊΈ͍ͨͳཧ͕ͳ͍ʁ
͑ʁ̋̋ݪଇ̋̋ຊΈ͍ͨͳཧ͕ͳ͍ʁ w ͍͍ΜͩΑɺͦΕͰ w ΩϨΠͳίʔυॻ͜͏ͱࢥͬͯࣄͯ͠Δͷɺҙࣝߴ͗ͯ͢ർΕ·ͤΜʁ w ʮ1PG&""ʹॻ͍ͯ͋Δ͔ΒαʔϏεΫϥεॻ͖·͢ʢΩϦοʯ͡Όͳͯ͘ ʮকདྷͷมߋ࣌ʹָ͍͔ͨ͠ΒαʔϏεΫϥε࡞ͬͱ͜ʯɻ͜ΕͰ͍ͬ͠ ΐผʹɻ
5IBOLZPV