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
小さな機能、大きな仕事 PHPカンファレンス沖縄2019 / phpcon-okinawa-2019
Search
Kenta Suzuki
October 12, 2019
Technology
2
2.3k
小さな機能、大きな仕事 PHPカンファレンス沖縄2019 / phpcon-okinawa-2019
PHPカンファレンス沖縄2019での発表資料です。
https://phpcon.okinawa.jp/
Kenta Suzuki
October 12, 2019
Tweet
Share
More Decks by Kenta Suzuki
See All by Kenta Suzuki
Go at fluct
suzuken
0
4.3k
ADエンジニアがみたre:Invent 2018
suzuken
0
5.7k
広告配信管理システムを支えるPHP - レガシーシステムからの段階的移行戦略 / phpcon2017
suzuken
10
20k
ディスプレイ広告の基礎とセキュリティ
suzuken
18
4k
How to use AWS Lambda in Document Processing Pipeline
suzuken
0
3.9k
Other Decks in Technology
See All in Technology
専門分化が進む分業下でもユーザーが本当に欲しかったものを追求するプロダクトマネジメント/Focus on real user needs despite deep specialization and division of labor
moriyuya
2
1.4k
LLMで構造化出力の成功率をグンと上げる方法
keisuketakiguchi
0
920
いかにして命令の入れ替わりについて心配するのをやめ、メモリモデルを愛するようになったか(改)
nullpo_head
7
2.7k
人に寄り添うAIエージェントとアーキテクチャ #BetAIDay
layerx
PRO
10
2.4k
Bet "Bet AI" - Accelerating Our AI Journey #BetAIDay
layerx
PRO
4
1.8k
ロールが細分化された組織でSREと協働するインフラエンジニアは何をするか? / SRE Lounge #18
kossykinto
0
220
Strands Agents & Bedrock AgentCoreを1分でおさらい
minorun365
PRO
8
360
Claude Codeは仕様駆動の夢を見ない
gotalab555
23
6.8k
AIのグローバルトレンド 2025 / ai global trend 2025
kyonmm
PRO
1
150
Instant Apps Eulogy
cyrilmottier
1
110
Telemetry APIから学ぶGoogle Cloud ObservabilityとOpenTelemetryの現在 / getting-started-telemetry-api-with-google-cloud
k6s4i53rx
0
150
僕たちが「開発しやすさ」を求め 模索し続けたアーキテクチャ #アーキテクチャ勉強会_findy
bengo4com
0
2.5k
Featured
See All Featured
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
110
20k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3k
A designer walks into a library…
pauljervisheath
207
24k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Making the Leap to Tech Lead
cromwellryan
134
9.5k
Embracing the Ebb and Flow
colly
86
4.8k
The Straight Up "How To Draw Better" Workshop
denniskardys
235
140k
Unsuck your backbone
ammeep
671
58k
Fireside Chat
paigeccino
38
3.6k
Building Applications with DynamoDB
mza
96
6.5k
Thoughts on Productivity
jonyablonski
69
4.8k
The Language of Interfaces
destraynor
158
25k
Transcript
ʢμΠδΣετ൛ʣ খ͞ͳػೳɺେ͖ͳࣄ ླ݈ଠ!TV[V@W qVDU 70:"(&(3061 1)1ΧϯϑΝϨϯεԭೄ 70:"(&(3061εϙϯαʔηογϣϯ
ࣗݾհ w ླ݈ଠʢ!TV[V@Wʣ w גࣜձࣾqVDUऔక$50 w BKJUPGNύʔιφϦςΟ w ීஈ1)1 5ZQF4DSJQU
(PΛॻ͍ͯ·͢
ܧଓతͳϓϩμΫτ։ൃͰ ͋Γ͕ͪͳ w ཁ݅ʹରͯ͠ඞཁҎ্ʹେ͖͘ͳͬͨίʔυʹͳ͍ͬͯΔΑ ͏ʹݟ͑Δ͕ɺ࣌ؒͳ͘ίʔυΛݮΒͦ͏ʹख͕͚ͭΒ Εͳ͍ w ػೳΛՃ͍͕ͨ͠ɺطଘίʔυʹՃ͢Δ͔৽نʹΈ ΛՃ͢Δ͔໎͏ɻͦͯ͠·ͨશମͱͯ͠ෳࡶͳΈʹ ͳͬͯ͠·͍ͦ͏ɻ
w ϦΞʔΩςΫνϟ͕ͨ͠ɺ͞Βʹෳᯑʹͳͬͯ͠·ͬͨɻط ଘͷΈʹՃ͑ͯɺ·ͨෳࡶͳΈ͕Ճ͞Εͯ͠·ͬ ͨɻ
IUUQTTQFBLFSEFDLDPNTV[VLFOQIQDPO
Կ͔Βணख͢Δ͔ʁ
ෳࡶੑͱॏཁͷϚτϦΫε ૉΒ͍͠ ߟ͑Α͏ ·͋0, ෳࡶ͞খ ෳࡶ͞େ ॏཁେ ॏཁখ
ෳࡶੑͱॏཁͷϚτϦΫε ૉΒ͍͠ ߟ͑Α͏ ·͋0, ෳࡶ͞খ ෳࡶ͞େ ॏཁେ ॏཁখ ͜͜Λ͍͔ʹίϯτϩʔϧ͢Δ͔
ߟ͑Α͏ ෳࡶ͞େ ॏཁେ ෳࡶ͕͞ͳͥൃੜͨ͠ͷ͔Λߟ͠·͠ΐ͏ɻ ͳͥେ͖͘ͳͬͨͷ͔؍͠·͠ΐ͏ɻ νέοτɺ୲ऀͷϩάɺഎܠΛ͔֬Ί·͠ΐ͏ɻ σʔλɺϩδοΫΛΑ͘ݟ·͠ΐ͏ɻ ෳࡶੑͱॏཁͷϚτϦΫε
ίʔυࣗମͷෳࡶੑΛ૿͞ͳ͍ w ෆԺͳஹީʮ͜ͷ"1*Ͱશ෦࣮͓ͯ͘͠ͱศརʯ w ςετέʔε͕૿͑ɺ࣮͕ΒΉɻۀͦͷػೳʹґ ଘ͢Δɻ w େࣄͳͷಡΈ͢͞ʢ3FBEBCJMJUZʣ
ෳࡶੑͷ૿େ ύονॻ͘ ʢෳࡶੑͷೖʣ ϦϦʔε ಡΈղ͘ʢΘ͔Βͳ͍ʣ ςετಡΉʢΘ͔Βͳ͍ʣ ϨϏϡʔ͢Δ ʢϨϏϡϫʔΑ͘Θ͔Βͳ͍ʣ
ෳࡶੑͷରॲ๏ wϦϑΝΫλϦϯά wϦΞʔΩςΫνϟ wϦϓϨʔε
ෳࡶੑͷରॲ๏ wϦϑΝΫλϦϯά wϦΞʔΩςΫνϟ wϦϓϨʔε
ϦΞʔΩςΫνϟࣄྫ
ྫͱ͋ΔऔҾػೳ w લʹߏங͞Ε͍͕ͯͨ΄ͱΜͲΘΕ͍ͯͳ͍৴ػೳͩͬͨɻࠂ৴ αʔόɺཧܥɺ%#ɺ΄΅ͯ͢ͷίϯϙʔωϯτʹ͍ͭͯӨڹΛ༩͑Δઃܭ ʹͳ͍ͬͯͨɻ w ಛఆͷࣄۀऀͱͷ࿈ܞͰ͏·͘ಈ࡞͢Δ͕ɺϓϥοτϑΥʔϜશମͱͯ͠ͷར ༻͢ΔͨΊʹطଘػೳͱͷ߹ੑ͕ͱΕ͍ͯͳ͔ͬͨɻ͋Δઃఆ͔Β༗ޮ ͳΦʔΫγϣϯ͕ɺ͜ͷػೳ͔Βར༻Ͱ͖ͳ͍Α͏ʹͳ͍ͬͯͨɻΘΕͯ ͍ͳ͍ػೳͩͬͨͨΊɺଞͷػೳͷ࣮͜ͷػೳΛߟྀ͍ͯ͠ͳ͔ͬͨɻ
w ςετηοτେ͖͘ͳΓ͓͗ͯ͢Γɺઃఆ༻"1*ංେԽ͍ͯͨ͠ɻػೳΛಡ Έղ͘͜ͱ͘͠ɺ৽ͨͳΦʔΫγϣϯܗࣜΛՃ͢Δ͜ͱࠔͩͬͨɻ ར༻ϩάेʹग़ྗ͞Ε͓ͯΒͣɺੳͰ͖ͳ͍ঢ়ଶͩͬͨɻ w ͦͯ͠ࠓޙɺ͜ͷػೳΛੵۃతʹ֦ு͍͖͍ͯͨ͠ͱ͍͏Ϗδωε͔Βͷཁٻ ͕͋ͬͨɻ
ྫͱ͋ΔऔҾػೳ w લʹߏங͞Ε͍͕ͯͨ΄ͱΜͲΘΕ͍ͯͳ͍৴ػೳͩͬͨɻࠂ৴ αʔόɺཧܥɺ%#ɺ΄΅ͯ͢ͷίϯϙʔωϯτʹ͍ͭͯӨڹΛ༩͑Δઃܭ ʹͳ͍ͬͯͨɻ w ಛఆͷࣄۀऀͱͷ࿈ܞͰ͏·͘ಈ࡞͢Δ͕ɺϓϥοτϑΥʔϜશମͱͯ͠ͷར ༻͢ΔͨΊʹطଘػೳͱͷ߹ੑ͕ͱΕ͍ͯͳ͔ͬͨɻ͋Δઃఆ͔Β༗ޮ ͳΦʔΫγϣϯ͕ɺ͜ͷػೳ͔Βར༻Ͱ͖ͳ͍Α͏ʹͳ͍ͬͯͨɻΘΕͯ ͍ͳ͍ػೳͩͬͨͨΊɺଞͷػೳͷ࣮͜ͷػೳΛߟྀ͍ͯ͠ͳ͔ͬͨɻ
w ςετηοτେ͖͘ͳΓ͓͗ͯ͢Γɺઃఆ༻"1*ංେԽ͍ͯͨ͠ɻػೳΛಡ Έղ͘͜ͱ͘͠ɺ৽ͨͳΦʔΫγϣϯܗࣜΛՃ͢Δ͜ͱࠔͩͬͨɻ ར༻ϩάेʹग़ྗ͞Ε͓ͯΒͣɺੳͰ͖ͳ͍ঢ়ଶͩͬͨɻ w ͦͯ͠ࠓޙɺ͜ͷػೳΛੵۃతʹ֦ு͍͖͍ͯͨ͠ͱ͍͏Ϗδωε͔Βͷཁٻ ͕͋ͬͨɻ
ྫͱ͋ΔऔҾػೳ w લʹߏங͞Ε͍͕ͯͨ΄ͱΜͲΘΕ͍ͯͳ͍৴ػೳͩͬͨɻࠂ৴ αʔόɺཧܥɺ%#ɺ΄΅ͯ͢ͷίϯϙʔωϯτʹ͍ͭͯӨڹΛ༩͑Δઃܭ ʹͳ͍ͬͯͨɻ w ಛఆͷࣄۀऀͱͷ࿈ܞͰ͏·͘ಈ࡞͢Δ͕ɺϓϥοτϑΥʔϜશମͱͯ͠ͷར ༻͢ΔͨΊʹطଘػೳͱͷ߹ੑ͕ͱΕ͍ͯͳ͔ͬͨɻ͋Δઃఆ͔Β༗ޮ ͳΦʔΫγϣϯ͕ɺ͜ͷػೳ͔Βར༻Ͱ͖ͳ͍Α͏ʹͳ͍ͬͯͨɻΘΕͯ ͍ͳ͍ػೳͩͬͨͨΊɺଞͷػೳͷ࣮͜ͷػೳΛߟྀ͍ͯ͠ͳ͔ͬͨɻ
w ςετηοτେ͖͘ͳΓ͓͗ͯ͢Γɺઃఆ༻"1*ංେԽ͍ͯͨ͠ɻػೳΛಡ Έղ͘͜ͱ͘͠ɺ৽ͨͳΦʔΫγϣϯܗࣜΛՃ͢Δ͜ͱࠔͩͬͨɻ ར༻ϩάेʹग़ྗ͞Ε͓ͯΒͣɺੳͰ͖ͳ͍ঢ়ଶͩͬͨɻ w ͦͯ͠ࠓޙɺ͜ͷػೳΛੵۃతʹ֦ு͍͖͍ͯͨ͠ͱ͍͏Ϗδωε͔Βͷཁٻ ͕͋ͬͨɻ
ྫͱ͋ΔऔҾػೳ w લʹߏங͞Ε͍͕ͯͨ΄ͱΜͲΘΕ͍ͯͳ͍৴ػೳͩͬͨɻࠂ৴ αʔόɺཧܥɺ%#ɺ΄΅ͯ͢ͷίϯϙʔωϯτʹ͍ͭͯӨڹΛ༩͑Δઃܭ ʹͳ͍ͬͯͨɻ w ಛఆͷࣄۀऀͱͷ࿈ܞͰ͏·͘ಈ࡞͢Δ͕ɺϓϥοτϑΥʔϜશମͱͯ͠ͷར ༻͢ΔͨΊʹطଘػೳͱͷ߹ੑ͕ͱΕ͍ͯͳ͔ͬͨɻ͋Δઃఆ͔Β༗ޮ ͳΦʔΫγϣϯ͕ɺ͜ͷػೳ͔Βར༻Ͱ͖ͳ͍Α͏ʹͳ͍ͬͯͨɻΘΕͯ ͍ͳ͍ػೳͩͬͨͨΊɺଞͷػೳͷ࣮͜ͷػೳΛߟྀ͍ͯ͠ͳ͔ͬͨɻ
w ςετηοτେ͖͘ͳΓ͓͗ͯ͢Γɺઃఆ༻"1*ංେԽ͍ͯͨ͠ɻػೳΛಡ Έղ͘͜ͱ͘͠ɺ৽ͨͳΦʔΫγϣϯܗࣜΛՃ͢Δ͜ͱࠔͩͬͨɻ ར༻ϩάेʹग़ྗ͞Ε͓ͯΒͣɺੳͰ͖ͳ͍ঢ়ଶͩͬͨɻ w ͦͯ͠ࠓޙɺ͜ͷػೳΛੵۃతʹ֦ு͍͖͍ͯͨ͠ͱ͍͏Ϗδωε͔Βͷཁٻ ͕͋ͬͨɻ
ϑΟʔνϟʔͱέΠύϏϦςΟ ϦΞϧλΠϜʹϩάΛղੳͰ͖Δ ͋ΔࠂͷϒϩοΫ͕Մೳ ࠂछผ͝ͱʹ੍ޚՄೳ औҾܗࣜ"͕Մೳ ୯Ձ༧ଌ͕Մೳ ϑΟʔνϟʔ έΠύϏϦςΟ औҾܗࣜ#͕Մೳ ʢ͕ͩෆेʣ
ಛघऔҾ͕Մೳ
ϑΟʔνϟʔͱέΠύϏϦςΟ ϦΞϧλΠϜʹϩάΛղੳͰ͖Δ ͋ΔࠂͷϒϩοΫ͕Մೳ ࠂछผ͝ͱʹ੍ޚՄೳ औҾܗࣜ"͕Մೳ ୯Ձ༧ଌ͕Մೳ ϑΟʔνϟʔ έΠύϏϦςΟ औҾܗࣜ#͕Մೳ ʢ͕ͩෆेʣ
ಛघऔҾ͕Մೳ ʢେ͖͗͢Δ"1*ʣ ͋ΔϑΟʔνϟʔͰ͔͠ར༻͞Ε͓ͯΒͣɺαΠϩԽ͍ͯ͠ΔέΠύϏϦςΟ
αΠϩԽͷ w ςʔϒϧࣗମ͕Γ͚ΒΕɺಠࣗͳσʔλߏʹͳͬͯ ͍Δ w "1*͕ංେԽ͠ɺಛघʹॲཧ͠Α͏ͱ͍ͯ͠Δɻʢ࣌ͷ அͱͯ͠ɺϑΟʔνϟʔ࣮ݱͷεϐʔυΛ༏ઌͨ͠ͱߟ ͑ΒΕΔʣ ࠓޙมԽ͕ݟࠐ·ΕɺεϐʔυΛثʹ͍ͨ͠ϑΟʔνϟʔ Ͱ͋ͬͨͨΊɺϦΞʔΩςΫνϟ͢Δ͜ͱΛஅ
ϦΞʔΩςΫνϟͷ ํΛཱͯΔ
ϑΟʔνϟͱέΠύϏϦςΟ ϦΞϧλΠϜʹϩάΛղੳͰ͖Δ ͋ΔࠂͷϒϩοΫ͕Մೳ ࠂछผ͝ͱʹ੍ޚՄೳ औҾܗࣜ"͕Մೳ ୯Ձ༧ଌ͕Մೳ ϑΟʔνϟʔ έΠύϏϦςΟ ຊʹ࣮ݱ͍ͨ͠औҾܗࣜ# طଘͷέΠύϏϦςΟΈ߹Θ্ͤͨͰ੍ޚ͍ͨ͠
ϑΟʔνϟʔͱέΠύϏϦςΟ ϦΞϧλΠϜʹϩάΛղੳͰ͖Δ ͋ΔࠂͷϒϩοΫ͕Մೳ ࠂछผ͝ͱʹ੍ޚՄೳ औҾܗࣜ"͕Մೳ ୯Ձ༧ଌ͕Մೳ ϑΟʔνϟʔ έΠύϏϦςΟ ຊʹ࣮ݱ͍ͨ͠औҾܗࣜ# ৽نέΠύϏϦςΟΛՃ্͑ͨͰΈ߹ΘͤΔ
औҾΛݸผͷϩάʹॻ͖ग़͢ औҾ͝ͱͷ୯Ձઃఆ
Ξϓϩʔν w طଘػೳͱͷ߹ɺ׆͔ͤΔطଘέΠύϏϦςΟΛચ͍ ग़͠ w σʔλϕʔεϦϑΝΫλϦϯάͰͳ͘ɺϞσϦϯά͔Β Γͳ͓͠ w ཧػೳʹ͍ͭͯখ࣮͘͞͠͠ɺ৴ػೳطଘͷ ػೳΛ࣮ͭͭ͠मਖ਼
ϙετϞʔςϜ w ։ൃ࣌ɺ͜ͷϑΟʔνϟʔΛ࣮͢ΔʹΓͳ͍έΠύ ϏϦςΟ͕ͨ͘͞Μ͋ͬͨɻͦͷͨΊಥ؏ͰέΠύϏϦςΟ Λ૿ͨ͠ɻͦͷ݁Ռ"1*͕ංେԽ͍ͯͨ͠ɻ w ͦͷ݁ՌɺΞʔΩςΫνϟ͕αΠϩԽ͠ɺଞͷػೳͷਐԽʹ ਵͰ͖͍ͯͳ͔ͬͨɻෛ࠴ฦ٫͞Εͳ͔ͬͨɻͦͯ͠ ঃʑʹ͔ͭΘΕͳ͘ͳ͍ͬͯͬͨɻ w
࠶ػೳ͕Ϛʔέοτ͔ΒཅͷΛཋͼͨɻ࣌ଘࡏ͠ͳ ͍ඞཁͳέΠύϏϦςΟ͕ঃʑʹϓϩμΫτʹඋΘ͖ͬͯͯ ͍ͨͨΊɺখ͍͞ػೳ࣮Ͱཁ݅Λຬͨ͢͜ͱ͕Ͱ͖ͨɻ
ϦΞʔΩςΫνϟখ͘͞ w ඞཁ࠷ݶͷέΠύϏϦςΟΛ࣮͠Α͏ɻ͔ͭɺࠓޙଞ ͷϑΟʔνϟʹ͓͍ͯΘΕΔΑ͏ʹέΠύϏϦςΟΛઃܭ ͠Α͏ɻ w ଞʹར༻Ͱ͖ΔέΠύϏϦςΟ͕͋ΔͳΒɺͦΕΛར༻͠Α ͏ɻͦͷ··͑ͳͯ͘ɺطଘͷέΠύϏϦςΟΛগ͠ม ߋ͢ΕՄೳͳΒɺύονΛૹΖ͏ɻ w
ਖ਼͍͠ΞʔΩςΫνϟϦϦʔεαΠΫϧ͕Կप͔͠ͳ͚Ε Θ͔Βͳ͍ɻͲΜͲΜͤྑ͍ɻͷͰɺখ͘͞࡞ͬͯͨ Ίͦ͏ɻ
·ͱΊ ະདྷʹ͚ͯ
lܭը༧ʹա͗ͳ͍z
খ͞ͳػೳɺେ͖ͳࣄ w ॏཁͳػೳͳΒɺίʔυΛখ͘͞͠Α͏ɻखݩʹίʔυΛख܁ ΓدͤɺಡΈ͘͢͠ɺม͑ͯ͋͛͘͢͠Α͏ɻ w ৽͍͠ΈΛͭ͘ΔલʹɺطଘͷΈΛ͔ͬ͠Γௐࠪͯۛ͠ ຯ͠Α͏ɻ w খ͘͞͡ΊͯɺঃʑʹΈΛ͍ͭͬͯ͘͜͏ɻେࣄͳͷখ ͘͞ϦϦʔεͯ͠ϦζϜΛ௫Ή͜ͱɻ
w ࠷ॳͷϦϦʔε͔Β͞ΕͨΞʔΩςΫνϟʹͳΒͳ͍ɻਖ਼ ղ͕Θ͔Βͳ͍͜ͱͷ΄͏͕ଟ͍ɻϦϦʔεΛճͯ͠ঃʑʹέΠ ύϏϦςΟΛ૿͍ͯ͜͠͏ɻ
IUUQCJUMZqVDUTXFPLJOBXB