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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
例外処理とどう使い分ける?Result型を使ったエラー設計 #burikaigi
kajitack
16
5.8k
ZJIT: The Ruby 4 JIT Compiler / Ruby Release 30th Anniversary Party
k0kubun
1
390
AIエージェント、”どう作るか”で差は出るか? / AI Agents: Does the "How" Make a Difference?
rkaga
4
1.9k
[KNOTS 2026登壇資料]AIで拡張‧交差する プロダクト開発のプロセス および携わるメンバーの役割
hisatake
0
170
Claude Codeの「Compacting Conversation」を体感50%減! CLAUDE.md + 8 Skills で挑むコンテキスト管理術
kmurahama
1
820
そのAIレビュー、レビューしてますか? / Are you reviewing those AI reviews?
rkaga
6
4.3k
高速開発のためのコード整理術
sutetotanuki
1
340
AIエージェントの設計で注意するべきポイント6選
har1101
7
3.3k
AI 駆動開発ライフサイクル(AI-DLC):ソフトウェアエンジニアリングの再構築 / AI-DLC Introduction
kanamasa
11
6k
GISエンジニアから見たLINKSデータ
nokonoko1203
0
190
Denoのセキュリティに関する仕組みの紹介 (toranoana.deno #23)
uki00a
0
260
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
260
Featured
See All Featured
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
9.4k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
100
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
The Invisible Side of Design
smashingmag
302
51k
Building an army of robots
kneath
306
46k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
47
So, you think you're a good person
axbom
PRO
2
1.9k
First, design no harm
axbom
PRO
2
1.1k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
1.5k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
7.9k
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όʔδϣϯΞοϓΛఘΊ͍ͯΔͦ͜ͷ͋ͳͨɺ ͖ͬͱͰ͖·͢ɻͬͯΈ·ͤΜ͔ʁ