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の限界とレガシーからの脱却 / phpcon2019
Search
shmurakami
December 01, 2019
Technology
2
3.5k
レガシーなPHPの限界とレガシーからの脱却 / phpcon2019
PHPConference Japan 2019
shmurakami
December 01, 2019
Tweet
Share
More Decks by shmurakami
See All by shmurakami
サーバーサイドから見るChatworkの現状と未来 / Now and future of Chatwork from server side perspective
shmurakami
3
1.3k
php grpc-client in phpcon2018
shmurakami
0
1.7k
lumen e2e test
shmurakami
0
1.1k
decoded_php.pdf
shmurakami
3
780
良心的にまじめに開発するための心構え
shmurakami
0
180
TypeScriptでKnockoutを書いてみた
shmurakami
3
1.2k
社内勉強会資料 PHPプロジェクトでのJavaScript
shmurakami
0
660
社内勉強会資料 JavaScriptの基本 その1
shmurakami
5
1.8k
Other Decks in Technology
See All in Technology
Eight Engineering Unit 紹介資料
sansan33
PRO
0
3.4k
Javaアプリケーションの配布とパッケージング / Distribution and packaging of Java applications
hogelog
2
520
Text-to-SQLの評価データセットを作って最新LLMモデルの性能評価をしてみた
gotalab555
3
490
キャッシュレス決済のプロダクトから決済基盤への進化
b1a9id
0
210
kintone開発組織のDevOpsへの移り変わりと実践
ueokande
1
280
CSSDay, Amsterdam
brucel
0
280
Two-Tower モデルで実現する 検索リランキング / Shibuya_AI_2
visional_engineering_and_design
2
130
AWS Lambdaでサーバレス設計を学ぼう_ベンダーロックインの懸念を超えて-サーバレスの真価を探る
fukuchiiinu
4
940
医療業界に特化した音声認識モデル構築のためのアノテーションの実態
thickstem
0
500
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
760
現場で役立つAPIデザイン
nagix
1
190
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
5
38k
Featured
See All Featured
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
47
2.8k
The Power of CSS Pseudo Elements
geoffreycrofte
76
5.8k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Writing Fast Ruby
sferik
628
61k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
Building Adaptive Systems
keathley
42
2.6k
Practical Orchestrator
shlominoach
188
11k
Why Our Code Smells
bkeepers
PRO
337
57k
Visualization
eitanlees
146
16k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Balancing Empowerment & Direction
lara
1
110
Transcript
$IBUXPSLͷγεςϜ͔ΒֶͿ ϨΨγʔͳ1)1ͷݶքͱϨΨγʔ͔Βͷ٫ 1)1$POGFSFODF+BQBO
© Chatwork ࣗݾհ ˔͠Ό͔TIBLB ଜ্ढ़հ ˔$IBUXPSLגࣜձࣾ ˔1)1ྺ4DBMBྺOϲ݄ ˔1)1Ͱ*46$0/ຊબҐ
© Chatwork $IBUXPSLʹ͍ͭͯ ˔ϏδωενϟοταʔϏε ˓άϧʔϓνϟοτ λεΫཧ ϑΝΠϧڞ༗ ϏσΦԻ௨ ˔ಋೖاۀ ࣾҎ্
݄ݱࡏ
© Chatwork "HFOEB ˔͜ͷൃදͰͷϨΨγʔίʔυͷఆٛ ˔$IBUXPSLͷόοΫΤϯυߏ ˔ϨΨγʔͳ1)1ͷݶք ˔ϨΨγʔ͔Βͷ٫
© Chatwork ϨΨγʔίʔυͷఆٛ
© Chatwork ϨΨγʔίʔυͷఆٛ ʮςετ͕ͳ͍ίʔυʯ ϨΨγʔίʔυվળΨΠυ. גࣜձࣾᠳӭࣾ, 2009
© Chatwork ϨΨγʔίʔυͷఆٛ ʮॊೈੑͷͳ͍ίʔυʯ ʮςετ͞Ε͍ͯͳ͍ίʔυʯ ʮٕज़తෛ࠴Λ๊͍͑ͯΔίʔυʯ ϨΨγʔιϑτΣΞվળΨΠυ. גࣜձࣾᠳӭࣾ, 2016, 7p
© Chatwork ϨΨγʔίʔυͷఆٛ ʮमਖ਼ɺ֦ுɺ࡞ۀ͕ ɹɹඇৗʹ͍͠ίʔυʯ ϨΨγʔίʔυ͔Βͷ٫. ΦϥΠϦʔɾδϟύϯ, 2019, xiii
© Chatwork ͜ͷൃදͰͷϨΨγʔίʔυͷఆٛ ʮमਖ਼ɺ֦ுɺ࡞ۀ͕ ɹɹඇৗʹ͍͠ίʔυʯ ϨΨγʔίʔυ͔Βͷ٫. ΦϥΠϦʔɾδϟύϯ, 2019, xiii
© Chatwork ChatworkͷόοΫΤϯυߏ
© Chatwork γεςϜߏ֓ཁ OSQT NT
© Chatwork $IBUXPSLʹ͓͚ΔαʔόʔαΠυ ˔ όʔδϣϯY ˓ ࠓͰ&0-Ͱ͢Ͷ ˔ લʹ࡞ΒΕͨΦϨΦϨϑϨʔ ϜϫʔΫ
˔ ڊେͳϞϊϦε ˔ Α͋͘Δ5)&ϨΨγʔ ˓ ҉ͱྺ࢙తܦҢ͕ͨ͘͞Μ ˓ ͍ΖΜͳਓͷࢥ͕ࠞ͡Γ߹ͬ ͨྺ࢙͕ਂ͍ϨΠϠʔ ˔ .JDSPTFSWJDFTνοΫ ˔ ࢄγεςϜࢤ ˓ )#BTF ˓ %ZOBNP%# ˓ ,BGLB ˔ ϦΞΫςΟϒγεςϜ ˓ &WFOU4PVSDJOH ˓ $234
© Chatwork $IBUXPSLʹ͓͚ΔαʔόʔαΠυ IUUQTDSFBUPSTOPUFDIBUXPSLDPNFOUSZTDBMBZFBS
© Chatwork $IBUXPSLʹ͓͚ΔαʔόʔαΠυ $IBUXPSLͰલʹɺ1)1ͷಠࣗϑϨʔϜϫʔΫͰͭ͘ ΒΕͨେنγεςϜΛɺ4DBMBΛͬͯθϩϕʔεͰͭ͘Γͳ͓ ͢ͱ͍͏ܾஅΛ͠·ͨ͠ɻ ͜͜ͰͳΜͱ͔͠ͳ͍ͱαʔϏε͕কདྷతʹࢮ͵ɺͱഎਫͷਞ ͰΜͩϓϩδΣΫτͰͨ͠ IUUQTDSFBUPSTOPUFDIBUXPSLDPNFOUSZTDBMBZFBS
© Chatwork $IBUXPSLʹ͓͚ΔαʔόʔαΠυ $IBUXPSLͰલʹɺ1)1ͷಠࣗϑϨʔϜϫʔΫͰͭ͘ ΒΕͨେنγεςϜΛɺ4DBMBΛͬͯθϩϕʔεͰͭ͘Γͳ͓ ͢ͱ͍͏ܾஅΛ͠·ͨ͠ɻ ͜͜ͰͳΜͱ͔͠ͳ͍ͱαʔϏε͕কདྷతʹࢮ͵ɺͱഎਫͷਞ ͰΜͩϓϩδΣΫτͰͨ͠ IUUQTDSFBUPSTOPUFDIBUXPSLDPNFOUSZTDBMBZFBS
ϨΨγʔͳγεςϜࢮ͵
© Chatwork 1)1ΞϓϦέʔγϣϯͷͭΒΈ ˔ϝϯςφϯε͕ͭΒ͍ঢ়ଶ ˓ڊେͳϞϊϦεϓϩδΣΫτɺສߦͷ6UJMΫϥε ˓ݹ͍ΦϨΦϨϑϨʔϜϫʔΫ ˙Ϟμϯͳ੩తղੳπʔϧͷద༻͕͍͠ ˓҉ͱྺ࢙తܦҢ ཻ͕·ͪ·ͪͳυΩϡϝϯτ ˔͕ೖΓࠞ͡Γׂ͍͕͗ͯͯ͢ࠔ
˓ςετ͋Δ͕ʮෳͷΛຬͨ͢͜ͱʯͷ୲อ͕େม ˔$IBUXPSLͱ1)1ͱࢲ 1)1$POGFSFODF IUUQTTQFBLFSEFDLDPNUBOBLBZVLJDIBUXPSLUPQIQUPTJ
© Chatwork ੩తղੳπʔϧ ˔1)14UBO ˓143 $PNQPTFSʹରԠ͍ͯ͠ͳ͍Օॴ͕͋Γઃఆ͕ࠔ ˔1IBO ˓QIQBTU֦ு͕ඞਢ ˓࠷ۙ·Ͱ1)1͕Քಇ͍ͯͨ͠ͷͰಋೖͰ͖ͳ͔ͬͨ ˔4POBS2VCF
˓େ͖͍ϑΝΠϧʹରͯ͠ಈ͔͢ͱEPDLFSίϯςφ͕མͪΔ ˓॥తෳࡶͳͲऔΕΔ͕ɺཉ͍͠σʔλͦΕ͡Όͳ͍ ˔1IQ.FUSJDT ˓ಈ͔ͤͨ
© Chatwork 1IQ.FUSJDT
© Chatwork 1IQ.FUSJDT 1BDLBHF 0CKFDUϨϕϧͰͷϝτϦΫε ؔ࿈ ਤ͕औಘՄೳ
© Chatwork Package relations by PhpMetrics
© Chatwork Ͳ͏ͯ͜͠͏ͳͬͨʁ ˔༏ઌͰ։ൃΛଓ͚͖ͯͨ෭࡞༻ ˓ελʔτΞοϓͰͨΓલͷݱ ˔Ϗδωε͕֦େͨ͠λΠϛϯάͰ༷Λݫ֨Խ͠ͳ͔ͬͨ ˓ͱͱࣾπʔϧͩͬͨ ˓ᐆດͳ༷͕ᐆດͳ༷ΛੜΉѱ॥ ˔աڈʹίʔυͷվળʹࣦഊͨ͠ ˓શମతͳ4DBMBԽʹҰࣦഊ͠ɺ෦తʹ͔͠ҠߦͰ͖
͍ͯͳ͍ ˓4DBMBԽͨ͠෦ͷઃܭ1)1ʹҾ͖ͣΒΕΔ
© Chatwork ϨΨγʔͳPHPͷݶք
© Chatwork ʮमਖ਼ɺ֦ுɺ࡞ۀ͕ ɹɹඇৗʹ͍͠ίʔυʯ
© Chatwork ࠔͳมߋ ˔ϓϩδΣΫτͷن͕େ͖͘ɺΞʔΩςΫνϟɾઃܭͷେ نͳมߋ͕ࠔ ˓%#ͷׂɺεέʔϧΞτ ˓ϦϙδτϦׂ ˓1MBJO1)1ʹΑΔಉظॲཧલఏͷ༷ ˙ࠓ͔Β4XPPMF "NQͷಋೖʜ
˓֎෦αʔϏεͷҠߦ ˙ݱͳΒ4 -BNCEBͰࡁΉ"1*͋Δ
© Chatwork ϨΨγʔγεςϜͷݶք ʮࠔΛׂͤΑʯ
© Chatwork ࠔͳมߋ ˔ϓϩδΣΫτͷن͕େ͖͘ɺΞʔΩςΫνϟɾઃܭͷม ߋ͕ࠔ ˓%#ͷׂɺεέʔϧΞτ ˓ϦϙδτϦׂ ˓1MBJO1)1ʹΑΔಉظॲཧલఏͷ༷ ˙ࠓ͔Β4XPPMF "NQͷಋೖʜ
˓֎෦αʔϏεͷҠߦ ˙ݱͳΒ4 -BNCEBͰࡁΉ"1*͋Δ
© Chatwork Growth Scale Out Scale Up ❌
© Chatwork ϨΨγʔγεςϜ͕ݶքΛܴ͑ΔλΠϛϯά ˔αʔϏεΛܧଓ্͍ͯ͘͠Ͱى͜Δ͜ͱ ˓૿͑ଓ͚ΔϢʔβʔ ˓ϦΫΤετͷ૿Ճ ˓%#εέʔϧΞοϓͷݶքΛܴ͑Δ εέʔϧΞτࠔ ˓%#ίωΫγϣϯͷݶքΛܴ͑Δ
˓ϦΫΤετ͕ॲཧෆՄೳʹͳΔ ˔ΞϓϦέʔγϣϯϨΠϠʔͰରॲͰ͖ͳ͍ϛυϧΣΞͷੑ ೳݶքΛܴ͑Δ
© Chatwork Կ͕ͳͷ͔ ˔1)1͘ͳ͍͠ѱ͘ͳ͍ ˓1)1ѱ͘ͳ͍͘͠ͳ͍ େࣄ ˔ࣗࣾϑϨʔϜϫʔΫϨΨγʔ͕ͩ͘ͳ͍ ˓ ඞཁͳػೳ͕ແ͍ͱݴ͑Δ
˓ྲྀߦΓ͔ͩΒͱ-BSBWFMͳͲॏްͳϑϨʔϜϫʔΫʹ Γ͑ΔͱύϑΥʔϚϯε͕ग़ͳͯ͘αʔϏε͕མͪΔ ˔$IBUXPSLͷαʔϏεنʹ1)1͕ద߹͠ͳ͘ͳͬͨ ˓ͦΖͦΖ%#ίωΫγϣϯϓʔϧ͕ཉ͍͠ ˓O,SQTΛಉظॲཧͷݴޠͰॲཧ͢Δͷ͍͠ ˙+7. (P &SMBOH7.ͳͲ͕ద
© Chatwork ϨΨγʔ͔Βͷ٫ in Chatwork
© Chatwork ϨΨγʔ͔Βͷ٫ ˔5P%P ˓αʔϏεͷޓੑΛอͪͭͭ։ൃΛָʹ͠ͳ͕Β ˓ࠓͷഒͷτϥϯβΫγϣϯΛॲཧՄೳʹ͠ ˓৫ʹεέʔϥϏϦςΟΛ࣋ͨͤΔ
© Chatwork ٻΊΒΕ͍ͯΔͷ ˔ଈԠੑ ˓ߴͳϨεϙϯε ˔ྗੑ ˓ߴՄ༻ੑ ˔োੑ ˓γεςϜোͷہॴԽߴՔಇ
© Chatwork ϦΞΫςΟϒγεςϜ ग़య: ϦΞΫςΟϒએݴ ˔$IBUXPSLͷ৽ϝοηʔδϯάγεςϜΛࢧ͑Δٕज़ IUUQTTQFBLFSEFDLDPNKJLPDIBUXPSLGBMTFYJO NFUVTF[JOHVTJTVUFNVXP[IJFSVKJTIV
© Chatwork εέʔϧΞτ ˔γεςϜͱ৫ΛεέʔϧΞτ͢ΔΈ ˓γεςϜ͚ͩεέʔϧΞτͯ͠ϝϯςφϯεͰ͖Δ ମ੍͕͍ͬͯͳ͍ͱ࣋ଓͰ͖ͳ͍ ˙ίϯΣΠͷ๏ଇ ˓৫ͷεέʔϧʹ߹Θͤͯੜ࢈ੑΛߴΊΒΕΔߏ ˙.JDSPTFSWJDFT ˙.PEVMBS.POPMJUI
© Chatwork ৫ߏ ˔ώΤϥϧΩʔܕ৫͔Β٫ ˓νʔϜؒͷίϛϡχέʔγϣϯ͕औΓͮΒ͍ ˙ݱ͕ίϛϡχέʔγϣϯͤͣʹ࡞ΕΔ΄Ͳιϑτ ΣΞ։ൃ؆୯Ͱͳ͍ ˓ҙࢥܾఆͷ͕ᐆດ
© Chatwork ৫ߏ ˔ϗϥΫϥγʔ৫ ˓ϩʔϧϕʔεͷࣗͨ͠νʔϜ ˓ݖݶɺΛࢄ ˓$IBUXPSLࣾʹ͍ͯΔ͔ ࠓޙݕ౼ ग़య: GlassFrog
© Chatwork ϨΨγʔ͔Βͷ٫͜Ε·Ͱ ˔Ҡߦܭըɾํϓϥϯχϯά1P$ ˔ཁٻੳɾϞσϦϯά ˓3%3" %%% ˙3FMBUJPOTIJQ%SJWFO3FRVJSFNFOU"OBMZTJT ˙ۀɺϢʔεέʔεɺυϝΠϯɺʜ ˔͜͜·ͰͰϲ݄
© Chatwork ϨΨγʔ͔Βͷ٫͜Ε͔Β ˔5P%P ˓ϞσϦϯά ˓ίϯςΩετׂ ˓։ൃ ˓σʔλҠߦ ˓։ൃ৫ͷ৽ Δ͜ͱ͍ͬͺ͍
© Chatwork ·ͱΊ ˔ؔ࿈πʔϧͷݶք㲈ϨΨγʔͳ1)1ͷݶք ˓ίʔυͷϝϯςφϯεʹݶք͕དྷΔํ͕ૣͦ͏ ˓ʮࠔΛׂʯͰ͖ΔΑ͏ʹઃܭ͓ͯ͘͠ ˔αʔϏεͷࣾձతɺཁٻੑೳ͕ߴ·͔ͬͯΒͷେن ͳ৽ΊͪΌͪ͘Όେม ˓Ϗδωεنɺঢ়گʹ߹ΘͤͯదͳλΠϛϯάͰͷϦ ϑΝΫλɺϦϥΠτɺϦΞʔΩςΫτ
© Chatwork IUUQTXXXXBOUFEMZDPNQSPKFDUT
© Chatwork 8F$IBUXPSLBSFIJSJOH IUUQTDPSQDIBUXPSLDPNKBSFDSVJUFOHJOFFS ˔ϋΠύϑΥʔϚϯεͳ1)1Λॻ͖͍ͨਓ ˔1)1ʹॻ͖͖ͯผͷݴޠʹΓ͍͑ͨਓ