Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
小さな機能、大きな仕事 PHPカンファレンス沖縄2019 / phpcon-okinawa-2019
Kenta Suzuki
October 12, 2019
Technology
2
1.6k
小さな機能、大きな仕事 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
1.3k
ADエンジニアがみたre:Invent 2018
suzuken
0
3.4k
広告配信管理システムを支えるPHP - レガシーシステムからの段階的移行戦略 / phpcon2017
suzuken
8
19k
ディスプレイ広告の基礎とセキュリティ
suzuken
18
3.4k
How to use AWS Lambda in Document Processing Pipeline
suzuken
0
3.5k
Other Decks in Technology
See All in Technology
信頼性の階層の一段目を積み上げる/Monitoring Dashboard
shonansurvivors
0
180
THETA Xの登場はジオ業界を変えるか?
furuhashilab
0
170
⚡Lightdashを試してみた
k_data_analyst
0
210
BFFとmicroservicesアーキテクチャ
hirac1220
0
110
E2E自動テスト導入・運用をめぐる先入観と実際に起きたこと / Preconceptions and What Happened with E2E Testing
ak1210
5
1.2k
[SRE NEXT 2022]ヤプリのSREにおけるセキュリティ強化の取り組みを公開する
mmochi23
1
640
ニフティでSRE推進活動を始めて取り組んできたこと
niftycorp
2
550
ITエンジニアを取り巻く環境とキャリアパス / A career path for Japanese IT engineers
takatama
0
600
GitHub Actionsを使用してGoogle Play Consoleに自動アップロード
takenaga7
0
210
Nutanix_Meetup_20220511
keigotomomatsu
0
150
個人的に使って良かったUiPathアクティビティ
saoritakita
0
110
數據的多重宇宙 @ LINE Taiwan
line_developers_tw
PRO
0
690
Featured
See All Featured
A Tale of Four Properties
chriscoyier
149
20k
How to Ace a Technical Interview
jacobian
265
21k
Building Flexible Design Systems
yeseniaperezcruz
310
33k
For a Future-Friendly Web
brad_frost
164
7.4k
Adopting Sorbet at Scale
ufuk
63
7.5k
Agile that works and the tools we love
rasmusluckow
319
19k
Bash Introduction
62gerente
596
210k
Keith and Marios Guide to Fast Websites
keithpitt
404
21k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
4
450
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
29
4.3k
The Pragmatic Product Professional
lauravandoore
19
2.9k
Code Review Best Practice
trishagee
41
6.7k
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