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アプリケーションの言語バージョンアップ / Upgrade PHP ...
Search
Yoshihide TANIGUCHI
June 10, 2017
Programming
0
130
1人から始める大規模Webアプリケーションの言語バージョンアップ / Upgrade PHP in a large application
2017/06/10 PHP カンファレンス福岡
Yoshihide TANIGUCHI
June 10, 2017
Tweet
Share
More Decks by Yoshihide TANIGUCHI
See All by Yoshihide TANIGUCHI
スタディサプリ/Quipper オンラインミートアップ #1(Webエンジニア) / 新規サービス開発チームの紹介 / Studysapuri online meetup #1
ravelll
0
2.2k
Raspberry Pi と Netatmo と少しの ruby で作る二酸化炭素濃度モニター君
ravelll
0
69
Ruby の静的型チェックの話
ravelll
0
78
Quipperian and VimConf2019
ravelll
1
5.5k
さくらのフロントエンド さくらの Vue.js // vue.js in SAKURA
ravelll
3
4.2k
PHP7.2で始める型宣言 // Type declaration with PHP 7.2
ravelll
0
280
ISUCONのすゝめ // Shall we ISUCON ?
ravelll
0
110
オブジェクト指向設計とデザインパターンの基礎 / Basics of object oriented design and design pattern
ravelll
0
690
PHP 5.4 ~ 5.6 での追加機能のおさらいとバージョンアップへの誘い / Re-introduce PHP5.4~5.6 and invitation for upgrading
ravelll
0
88
Other Decks in Programming
See All in Programming
Ethereum_.pdf
nekomatu
0
460
Duckdb-Wasmでローカルダッシュボードを作ってみた
nkforwork
0
130
Figma Dev Modeで変わる!Flutterの開発体験
watanave
0
130
2024/11/8 関西Kaggler会 2024 #3 / Kaggle Kernel で Gemma 2 × vLLM を動かす。
kohecchi
5
920
Enabling DevOps and Team Topologies Through Architecture: Architecting for Fast Flow
cer
PRO
0
330
とにかくAWS GameDay!AWSは世界の共通言語! / Anyway, AWS GameDay! AWS is the world's lingua franca!
seike460
PRO
1
880
Compose 1.7のTextFieldはPOBox Plusで日本語変換できない
tomoya0x00
0
190
『ドメイン駆動設計をはじめよう』のモデリングアプローチ
masuda220
PRO
8
540
Remix on Hono on Cloudflare Workers
yusukebe
1
290
Snowflake x dbtで作るセキュアでアジャイルなデータ基盤
tsoshiro
2
520
Less waste, more joy, and a lot more green: How Quarkus makes Java better
hollycummins
0
100
Amazon Bedrock Agentsを用いてアプリ開発してみた!
har1101
0
340
Featured
See All Featured
Scaling GitHub
holman
458
140k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.1k
KATA
mclloyd
29
14k
The Language of Interfaces
destraynor
154
24k
How To Stay Up To Date on Web Technology
chriscoyier
788
250k
How to Think Like a Performance Engineer
csswizardry
20
1.1k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.1k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
10 Git Anti Patterns You Should be Aware of
lemiorhan
654
59k
Designing on Purpose - Digital PM Summit 2013
jponch
115
7k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
StorybookのUI Testing Handbookを読んだ
zakiyama
27
5.3k
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όʔδϣϯΞοϓΛఘΊ͍ͯΔͦ͜ͷ͋ͳͨɺ ͖ͬͱͰ͖·͢ɻͬͯΈ·ͤΜ͔ʁ