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.2k
小さな機能、大きな仕事 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
3.8k
ADエンジニアがみたre:Invent 2018
suzuken
0
5.2k
広告配信管理システムを支えるPHP - レガシーシステムからの段階的移行戦略 / phpcon2017
suzuken
10
20k
ディスプレイ広告の基礎とセキュリティ
suzuken
18
3.9k
How to use AWS Lambda in Document Processing Pipeline
suzuken
0
3.8k
Other Decks in Technology
See All in Technology
適材適所の技術選定 〜GraphQL・REST API・tRPC〜 / Optimal Technology Selection
kakehashi
1
150
Application Development WG Intro at AppDeveloperCon
salaboy
0
180
AWS Lambdaと歩んだ“サーバーレス”と今後 #lambda_10years
yoshidashingo
1
170
iOSチームとAndroidチームでブランチ運用が違ったので整理してます
sansantech
PRO
0
120
The Rise of LLMOps
asei
5
1.1k
Amazon Personalizeのレコメンドシステム構築、実際何するの?〜大体10分で具体的なイメージをつかむ〜
kniino
1
100
社内で最大の技術的負債のリファクタリングに取り組んだお話し
kidooonn
1
540
[FOSS4G 2024 Japan LT] LLMを使ってGISデータ解析を自動化したい!
nssv
1
210
BLADE: An Attempt to Automate Penetration Testing Using Autonomous AI Agents
bbrbbq
0
280
オープンソースAIとは何か? --「オープンソースAIの定義 v1.0」詳細解説
shujisado
3
420
Why App Signing Matters for Your Android Apps - Android Bangkok Conference 2024
akexorcist
0
120
AIチャットボット開発への生成AI活用
ryomrt
0
170
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1366
200k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5k
Adopting Sorbet at Scale
ufuk
73
9.1k
Bash Introduction
62gerente
608
210k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
4
370
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
28
8.2k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
27
4.3k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
How STYLIGHT went responsive
nonsquared
95
5.2k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
StorybookのUI Testing Handbookを読んだ
zakiyama
27
5.3k
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