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
symfony/aiとlaravel/boost
77web
0
120
条件判定に名前、つけてますか? #phperkaigi #c
77web
2
1.2k
PostgreSQLのRow Level SecurityをPHPのORMで扱う Eloquent vs Doctrine #phpcon #track2
77web
2
1.4k
コード書くの好きな人向けAIコーディング活用tips #orestudy
77web
3
460
エンジニアのための 法規制への取り組み方 #healthtechmeetup
77web
9
2.9k
「それはhowなんよ〜」のガイドライン #orestudy
77web
11
3.4k
空が堕ち、大地が割れ、海が涸れた日~もしも愛用しているフレームワークが開発停止したら?~ #phperkaigi 2025
77web
2
2k
Beyond ORM
77web
11
2.6k
見せてあげますよ、「本物のLaravel批判」ってやつを。
77web
9
8.9k
Other Decks in Programming
See All in Programming
決定論的オーケストレーションの設計と実装 / Design and Implementation of Deterministic Orchestration
nrslib
4
1.6k
TypeScript+Orvalで実現する型安全かつ堅牢でスケーラブルなマルチチャネル通知基盤 / TSKaigi Night talks ~after conference~
d0riven
0
390
トークンをケチるな、設計しろ:GitHub Copilotを賢く使うコンテキスト戦略
ochtum
0
300
LaravelLive Japan の裏方のすべて — 第188回 PHP勉強会@東京 (2026-06-24)
suguruooki
2
150
アルゴリズムは何を圧縮しているのか ─ Haskell から育った「圧縮代数」というメンタルモデル
naoya
15
3.1k
Embedded SREと共に達成した会員管理システムのAWS移行 - SRE NEXT 2026 ランチスポンサーセッション
niftycorp
PRO
0
2.1k
Signal Forms: Details & Live Coding @enterJS 2026 in Mannheim
manfredsteyer
PRO
0
220
Dataformのリポジトリを立ち上げるときにまずやること / dataform-day0-2026
snhryt
0
210
PHPだって関数型したい 〜できること、できないこと〜 / fp-in-php
jsoizo
0
170
Haskell/Servantを通してWebミドルウェアを捉え直す
pizzacat83
1
470
例外の正しい扱い方 そのエラー try-catchして大丈夫?
jinwatanabe
0
350
任せる範囲はこう広がった / How the Scope of AI Delegation Has Expanded
nrslib
1
240
Featured
See All Featured
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
260
The World Runs on Bad Software
bkeepers
PRO
72
12k
30 Presentation Tips
portentint
PRO
1
340
GitHub's CSS Performance
jonrohan
1033
470k
Typedesign – Prime Four
hannesfritz
42
3.1k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.2k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
360
Code Review Best Practice
trishagee
74
20k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
280
Game over? The fight for quality and originality in the time of robots
wayneb77
1
220
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