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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Yoshihide Taniguchi
June 10, 2017
Programming
20
5.2k
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
340
PHP7.2で始める型宣言
gs3
0
580
ISUCONのすゝめ // OUR ISUCON
gs3
3
1.4k
オブジェクト指向設計とデザインパターンの基礎 / 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.5k
あの日見たバグを僕達はまだ公式ドキュメントで見れない / The bug we saw that day
gs3
1
1.5k
ペパボを支える大統一CI基盤と人々
gs3
2
4.3k
PHP 5.3.x のアプリを PHP 7.0.x で動かすためにした n 個のこと
gs3
1
1.6k
今までやってきたこと これからやりたいこと
gs3
0
2.4k
Other Decks in Programming
See All in Programming
Oxlintはいいぞ
yug1224
5
1.3k
Grafana:建立系統全知視角的捷徑
blueswen
0
330
コマンドとリード間の連携に対する脅威分析フレームワーク
pandayumi
1
450
Kotlin Multiplatform Meetup - Compose Multiplatform 외부 의존성 아키텍처 설계부터 운영까지
wisemuji
0
190
MDN Web Docs に日本語翻訳でコントリビュート
ohmori_yusuke
0
640
開発者から情シスまで - 多様なユーザー層に届けるAPI提供戦略 / Postman API Night Okinawa 2026 Winter
tasshi
0
200
20260127_試行錯誤の結晶を1冊に。著者が解説 先輩データサイエンティストからの指南書 / author's_commentary_ds_instructions_guide
nash_efp
0
910
Vibe Coding - AI 驅動的軟體開發
mickyp100
0
170
AIエージェントのキホンから学ぶ「エージェンティックコーディング」実践入門
masahiro_nishimi
4
320
AI によるインシデント初動調査の自動化を行う AI インシデントコマンダーを作った話
azukiazusa1
1
690
AIと一緒にレガシーに向き合ってみた
nyafunta9858
0
170
Architectural Extensions
denyspoltorak
0
270
Featured
See All Featured
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
200
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.4k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.6k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
88
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
1.8k
4 Signs Your Business is Dying
shpigford
187
22k
Docker and Python
trallard
47
3.7k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
52
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.4k
Site-Speed That Sticks
csswizardry
13
1.1k
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όʔδϣϯΞοϓΛఘΊ͍ͯΔͦ͜ͷ͋ͳͨɺ ͖ͬͱͰ͖·͢ɻͬͯΈ·ͤΜ͔ʁ