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
1人から始める大規模Webアプリケーションの言語バージョンアップ / version up P...
Search
Yoshihide Taniguchi
June 10, 2017
Programming
20
5k
1人から始める大規模Webアプリケーションの言語バージョンアップ / version up PHP in large scale application
2017/06/10 に行われた PHP カンファレンス福岡での資料です
Yoshihide Taniguchi
June 10, 2017
Tweet
Share
More Decks by Yoshihide Taniguchi
See All by Yoshihide Taniguchi
PHP がフロントエンドエンジニアになってみた // from PHPer to Frontend
gs3
1
310
PHP7.2で始める型宣言
gs3
0
540
ISUCONのすゝめ // OUR ISUCON
gs3
3
1.3k
オブジェクト指向設計とデザインパターンの基礎 / Basics of object oriented design and design pattern
gs3
2
100k
PHP 5.4 ~ 5.6 での追加機能のおさらいとバージョンアップへの誘い / php54 to 56 and version up
gs3
1
2.3k
あの日見たバグを僕達はまだ公式ドキュメントで見れない / The bug we saw that day
gs3
1
1.5k
ペパボを支える大統一CI基盤と人々
gs3
2
4k
PHP 5.3.x のアプリを PHP 7.0.x で動かすためにした n 個のこと
gs3
1
1.5k
今までやってきたこと これからやりたいこと
gs3
0
2.3k
Other Decks in Programming
See All in Programming
EC2からECSへ 念願のコンテナ移行と巨大レガシーPHPアプリケーションの再構築
sumiyae
3
590
Fixstars高速化コンテスト2024準優勝解法
eijirou
0
190
Beyond ORM
77web
11
1.6k
最近のVS Codeで気になるニュース 2025/01
74th
1
100
AWS re:Invent 2024個人的まとめ
satoshi256kbyte
0
100
DevFest - Serverless 101 with Google Cloud Functions
tunmise
0
140
非ブラウザランタイムとWeb標準 / Non-Browser Runtimes and Web Standards
petamoriken
0
430
オニオンアーキテクチャを使って、 Unityと.NETでコードを共有する
soi013
0
370
ある日突然あなたが管理しているサーバーにDDoSが来たらどうなるでしょう?知ってるようで何も知らなかったDDoS攻撃と対策 #phpcon.2024
akase244
2
7.7k
PHPで作るWebSocketサーバー ~リアクティブなアプリケーションを知るために~ / WebSocket Server in PHP - To know reactive applications
seike460
PRO
2
770
traP の部内 ISUCON とそれを支えるポータル / PISCON Portal
ikura_hamu
0
180
歴史と現在から考えるスケーラブルなソフトウェア開発のプラクティス
i10416
0
300
Featured
See All Featured
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.4k
It's Worth the Effort
3n
183
28k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.5k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
28
4.5k
Side Projects
sachag
452
42k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
3
180
Practical Orchestrator
shlominoach
186
10k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
RailsConf 2023
tenderlove
29
970
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
870
Building Flexible Design Systems
yeseniaperezcruz
328
38k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2k
Transcript
1)1$0/'&3&/$&'6,60," ਓ͔Β࢝ΊΔ େن8FCΞϓϦέʔγϣϯͷ ݴޠόʔδϣϯΞοϓ
ࠓ͢͜ͱ w େنͳ8FCΞϓϦͷ1)1ΛόʔδϣϯΞοϓͨ͠ w ͲͷΑ͏ʹόʔδϣϯΞοϓ͢Δʹࢸ͔ͬͨ w Ͳ͏όʔδϣϯΞοϓ͔ͨ͠ w όʔδϣϯΞοϓޙͷ
ࠓ͞ͳ͍͜ͱ w όʔδϣϯΞοϓʹ͓͚ΔॲཧͷύϑΥʔϚϯεͷมԽ w όʔδϣϯΞοϓΛࢧ͑Δࣗಈςετઓུ w ͔͍͍ͬ͜8FCΞϓϦέʔγϣϯϑϨʔϜϫʔΫ
8FCΞϓϦέʔγϣϯΤϯδχΞ ୩ޱఓӳ@ravelll ಛൃੑա IUUQTSBWFMMMPSH
ϖύϘͷ։ൃ̎ڌ 50,:0 '6,60,"
None
&$ج൫νʔϜ αʔϏεج൫ͷվमɾվળ طଘػೳͷ֦ு
όʔδϣϯΞοϓͷ
എܠ wҎ্Քಇ͍ͯ͠ΔαʔϏε w࠷ޙͷݴޠόʔδϣϯΞοϓ9લ w &0-ͳόʔδϣϯΛ͍ଓ͚͍ͯͨ w͕࣌ܦͪେنԽɾෳࡶԽ͠όʔδϣϯΞοϓͷίετ େʹ w ʮΓ͍͚ͨͲΕΔ͕࣌ؒͳͯ͘ʜʯ w
࣌ࣗطଘػೳվળ͍߹Θͤͷٕज़αϙʔτΛ͢ ΔνʔϜʹ͍ͨ
ݹ͍όʔδϣϯʹײ͍ͯͨ͡՝ w ηΩϡϦςΟϦεΫ w ΤϯδχΞͷޏ༻ w ʜ
ݹ͍όʔδϣϯʹײ͍ͯͨ͡՝ w։ൃऀɾαʔϏεͷΛ્͢ΔͷͰʜʁ w ࠷৽ใΛऩूͯ͠ଟ͕͘׆༻Ͱ͖ͣݱੈΛఘΊΔ w ʮݟͳ͍͍͔ͯ͘ʜʯʮผͷݴޠΛΖ͏ʜʯ w ಘͨφϨοδϕʔε͕ݹ͍ͨΊʹΞτϓοτ͕ጨΒ ΕΔ w
ʮϨΨγʔͳڥվળΛؤுΔ͔Γ͢Δͷʜʯ wΤϯδχΞίϛϡχςΟʹ৮ΕΔ͜ͱޮతͳʹෆ Մܽ wΤϯδχΞͷαʔϏεͷ
ʮͲ͏ͨ͠Βόʔδϣϯ্͕Δʁʯ wʮͷ͋Δਓ͕ؒࣗΒ࣌ؒΛ֬อ͠ɺ ଞͷۀͱΕ্ͨͰ͋ͨΔ͔͠ͳ͍ͷͰʁʯ w ʢ͋͘·Ͱ࣌ͷࣗͷঢ়گԼͰͷߟ͑Ͱ͢ʣ wνʔϜͰج൫վળ͚ͩΛߦ͏࣌ؒΛ࡞ͬͯঃʑʹΖ͏ ͱ͢ΔɺۀλεΫͷׂΓࠐΈ͕ৗԽࣦͯ͠ഊͨ͠ աڈ w όʔδϣϯΞοϓʹݶΒͣɺαʔϏεͷنతʹج൫վ
ળΛઐ͢Δਓ͕͍ؒͨ΄͏͕ྑ͍ͷͰʁͱ͍͏ࢥ͍ Ҏલ͔Β͋ͬͨ
αʔϏεنʢΞϓϦέʔγϣϯϨΠϠʣ wओཁͳαϒγεςϜʢҎ߱ϩʔϧʣ㲈ݸ wίʔυྔ㲈ສߦ w ΄΅શͯͷϩʔϧ͕1)1
αʔϏεنʢΞϓϦέʔγϣϯϨΠϠʣ wओཁͳαϒγεςϜʢҎ߱ϩʔϧʣ㲈ݸ wίʔυྔ㲈ສߦ w ΄΅શͯͷϩʔϧ͕1)1
BENJO TFDVSF "1* DBSU VTFSNBOBHF NBJMNBHB[JOF BDDFTTQMVT UPQQBHF TIPQ NFNCFST
None
νʔϜʹ૬ஊ wόʔδϣϯΞοϓؚΊɺαʔϏεج൫ͷվળʹઐ೦ͤͯ͞ Β͑ͳ͍͔νʔϜʹ૬ஊɾަবͨ͠ w ج൫վળͷେࣄ͞ͱ͕ࣗͦΕΛ͖͢ཧ༝Λ্ʹ ͑ͨ ‣ͦΕ·Ͱͷۀ͔Β֎Εɺج൫վળʹઐ೦Ͱ͖Δ͜ͱʹ
όʔδϣϯΞοϓ ͍ͬͯͧ͘ʂʂ̍
͍ͬͯ͘ํ wਓͰશͯΛΒͳ͍ɻੵۃతʹਓΛཔΔ w1VMM3FRVFTUࡉ͔͘ग़͢ w໎ͬͨΒ҆શͳํ wΓ͗͢ͳ͍ɻ࠷খݶͷมߋͰόʔδϣϯΞοϓ͢Δ w ະདྷͷόʔδϣϯΞοϓ࣌ͷࢿྉʹͳΔ͜ͱΛߟ͑ͯ ϦʔμϒϧͳϩάΛ͢
·ͣڌΛ࡞Γਓͱܨ͕Δ w Λ্͛ͯਓʹؾʹͯ͠Β͏ w *TTVFΛཱͯͯߟ͑Λॻ͖࿈ͶΔ w༗ࣝऀʹࡶʹNFOUJPO͢Δ w ݟΛڞ༗ͯ͠Β͏ w ࠔͬͨͱ͖ॿ͚ΛٻΊ͓ͯ͘͘͢͠
None
ԿΛͲ͜·ͰΔ͔ܾΊΔ w όʔδϣϯΞοϓ͢Δϩʔϧʁ w Ͳͷόʔδϣϯ·Ͱ্͛Δʁ w ಉ࣌ʹվળͨ͠΄͏͕͍͍͜ͱ͋Δʁ
όʔδϣϯΞοϓ͢Δ͜ͱʹͨ͠ϩʔϧ w γϣοϓΦʔφʔ͕γϣοϓͷӡӦΛߦ͏ͨΊͷϩʔϧ w มߋසɺαʔϏεʹ͓͚Δॏཁ͕࠷ߴϨϕϧ w 1)1 w ίʔυྔ㲈ສߦʢશϩʔϧͰ࠷େʣ
ͳͥͦͷϩʔϧΛબΜͩͷ͔ wόʔδϣϯΞοϓͷޮՌ͕࠷େͱࢥ͏ϩʔϧͩͬͨ w ύϑΥʔϚϯεʹىҼ͢Δෆ۩߹͕͠͠ใࠂ͞Εͯ ͍ͨ w ࠷ߋ৽ස͕ߴ͍ΤϯδχΞͷԸܙ͕࠷େ wଞͷϩʔϧΛόʔδϣϯΞοϓ͍ͯ͘͠ىരࡎʹͳΔϩʔ ϧͩͬͨ w
ʮ࠷େͷϩʔϧ͕όʔδϣϯΞοϓͰ͖ͨʂʯ w ʮ͡Ό͋ଞͷϩʔϧͰ͖ΔͩΖʂΔͧʂʂ̍ʯ
ෆ҆ཁૉΛϦετΞοϓ͢Δ w นʹͳΓͦ͏ͳͷʹԿ͕͋Δʁ w ໌ͨ͠นʹͳΓͦ͏ͳऀͨͪ w NBHJD@RVPUFT@HQD0O w SFHJTUFS@HMPCBMT0O w
ಈ࡞ͷอূํ๏
None
ಓ͕ݟ͖͑ͯͨ ίʔυ͍͡Δͧʙ
NBHJD@RVPUFT@HQDΛͳΜͱ͔͢Δ wํɿ0O0⒎ͲͪΒͰৼΔ͍͕มΘΒͳ͍Α͏ʹ͢ Δ w Өڹͷ͋Δεʔύʔάϩʔόϧมͷ͍ํΛ͍ͯ͠Δ ՕॴΛɺNBHJD@RVPUFT@HQDͷڍಈΛٵऩ͢Δϥο ύʔϝιουͰஔ͖͑Δ w εʔύʔάϩʔόϧมΛؚΉจࣈྻ࿈݁42-จΛ QSFQBSFETUBUFNFOUΛ͏Α͏मਖ਼
ʢ42-*OKFDUJPOͷࢭʣ
None
SFHJTUFS@HMPCBMTΛԿͱ͔͢Δ w ґଘ͍ͯ͠Δ࣮͕ݟ͔ͭΒͳ͍ʜ w ͘αʔϏεʹܞΘ͍ͬͯΔΤϯδχΞʹώΞϦϯά ͦΕͰ͔Βͳ͍ w NBHJD@RVPUFT@HQDͱҰॹʹ͍͑ͬͱ0⒎ʹ͢Δ͜ͱ ʹ w
͍ɺͦͷޙग़·ͤΜͰͨ͠
NBHJD@RVPUFT@HQD 0⒎ʹͰ͖ͨ ͜͜·ͰͰϲ݄ɺ1VMM3FRVFTUT
1)1ͷಈ࡞ڥΛ࡞Δ w طଘͷ1VQQFU.BOJGFTUΛϕʔεʹ1)1ͷಈ࡞ ڥΛ࡞Δ w WBHSBOUͰγϡοͱϩʔΧϧڥߏங w ςετ͕ബ͍ͷͰΞϓϦέʔγϣϯΛखಈͰૢ࡞ͭͭ͠ 1)1ͷϏϧυઃఆQIQJOJͷઃఆΛௐͯ͠ QVQQFUJ[FBQQMZ
w ΞϓϦέʔγϣϯͷमਖ਼࿙ΕΛิ w େଟͷϑΝΠϧ͕&6$+1ͩͬͨͷͰΤϯίʔσΟ ϯάܥΦϓγϣϯͷσϑΥϧτ͕มΘͬͨӨڹ͕ਙ େͩͬͨʜ
్த1)1ͷόάΛ౿Ή IUUQTTQFBLFSEFDLDPNHTUIFCVHXFTBXUIBUEBZ
΄΅΄΅ಈ͘ڥ͕Ͱ͖ͨΒ ಈ࡞ݕূ
ಈ࡞ݕূ w ຊ൪ͱಉ͡ߏͷαʔόʹ1)1ͷڥΛ࡞ͬͯݕূ w ςετΛՃͯ͠ΧόʔͤͣɺखಈͰ֬ೝ w ςετΧόϨοδ͕͔ͬͨՃ͕ࠔͳ࣮͕ଟ ͔ͬͨ w ຊ൪ڥͷϩά͔Β֤ػೳͷར༻සΛௐɺස͔Βػ
ೳΛङϞσϧͷ࣭ྨʹج͍ͮͯྨɺ2"͞Μͱ ୲ͯ͠ݕূ w ͨΓલ࣭2"͞Μ w Ұݩత࣭ɾັྗత࣭!SBWFMMM w ͨΓલ࣭ͷج४ɿۙͰͷച্͕͋ΔΦʔ φʔ͕ฏۉͯ͠ճҎ্͍ͬͯΔػೳ
ॗʑͱಈ࡞֬ೝमਖ਼ ςϯϓϨʔτʹ&6$+165'͕ࠞࡏ͍ͯͯ͠ ࣍ʑ͕ݟ͔ͭΔ͚ͲࣃΛ৯͍ͬͯ͠ؤுΔ
ݕূͱमਖ਼͕ऴΘͬͨΒϦϦʔε
ஈ֊తʹϦϦʔε ຊ൪αʔόͷʹτϐοΫϒϥϯνΛBQQMZ w -#͔Βͷ͚֎͠ɺQVQQFUBQQMZͳͲɺΓํΛΠ ϯϑϥΤϯδχΞʹڭ͑ͯΒͬͯશ෦Δ w खॱΛ*TTVFʹ·ͱΊͯϨϏϡʔͯ͠Β͏ w /FX3FMJDͰࢹ ϒϥϯνΛNBTUFSʹϚʔδɺͦͷଞશΞοϓσʔτ
͍ͭʹશ1)1ʹ
͔͔ͬͨ࣌ؒɾมߋྔ w ࠷ॳͷ1VMM3FRVFTU͔ΒόʔδϣϯΞοϓྃ·Ͱ w㲈ϲ݄ w ผͷλεΫظٳՋ͋ͬͨͷͰ࣮ಇϲ݄͘Β͍ʁ w5PUBM1VMM3FRVFTUT w㲈 w ׂNBHJD@RVPUFT@HQDରԠͷͨΊͷͷͩͬͨ
୲ਓͰͰ͖ͨ w νʔϜͰฒΈἧ͑ͯྟΉͷ͕͚͠Εਓ͔ΒਐΉͷ ख wͪΖΜਓͰશͯΛΔΘ͚͡Όͳ͍ɺਓΛཔΔ wνʔϜ࡞Εͣͱ伱ؒ࣌ؒͷڠྗΛಘΔ͜ͱͰ͖Δ νʔϜ͕࡞ΕͣͱఘΊΔ͜ͱͳ͍
όʔδϣϯΞοϓΛऴ͑ͯ wΔਓ͕૿͑ͳ͍ͱεέʔϧ͠ͳ͍ wܧଓతʹΒͳ͍ͱ݁ہͲ͔͜Ͱݹ͘ͳΔ w ࣾ5FDI.5(ͰʮόʔδϣϯΞοϓͲ͏Ͱ͔͢ʁʯ ͳτʔΫ w νʔϜશମΛͬͱલʹ͍ͨ͠ IUUQTTQFBLFSEFDLDPNHTQIQUPBOEWFSTJPOVQ
·ͱΊ w େنͳ8FCΞϓϦέʔγϣϯͷݴޠόʔδϣϯΞοϓΛ ਓ͔Β࢝Ίͯͨ͠ࣄྫΛհ͠·ͨ͠ w ؾ͔࣋ͪΒࣗͷϙδγϣϯΛม͑ͯͬͨ w ͲΜͲΜਓΛཔͬͯͭͭ͜͜ਐΊͨΒͰ͖ͨ wόʔδϣϯΞοϓΛఘΊ͍ͯΔͦ͜ͷ͋ͳͨɺ ͖ͬͱͰ͖·͢ɻͬͯΈ·ͤΜ͔ʁ