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
フロントエンドリアーキテクトの話
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Yosuke Furukawa
PRO
June 08, 2023
Programming
19
10k
フロントエンドリアーキテクトの話
ZOZO Tech Meetup で話したフロントエンドリアーキテクトの話です。
Yosuke Furukawa
PRO
June 08, 2023
Tweet
Share
More Decks by Yosuke Furukawa
See All by Yosuke Furukawa
デザインシステムが必須の時代に
yosuke_furukawa
PRO
2
200
Node.js, Deno, Bun 最新動向とその所感について
yosuke_furukawa
PRO
10
4.9k
Welcome JSConf.jp 2024
yosuke_furukawa
PRO
1
4.5k
tc39 x jsconf.jp Panel Discussion 2024
yosuke_furukawa
PRO
0
300
Removing Corepack
yosuke_furukawa
PRO
9
1.8k
JavaScript Runtime とはなにか
yosuke_furukawa
PRO
15
3k
Strip Types と Storage
yosuke_furukawa
PRO
4
470
Module Harmony について
yosuke_furukawa
PRO
4
1.8k
LTのやり方
yosuke_furukawa
PRO
16
2.9k
Other Decks in Programming
See All in Programming
Package Management Learnings from Homebrew
mikemcquaid
0
230
フロントエンド開発の勘所 -複数事業を経験して見えた判断軸の違い-
heimusu
7
2.8k
高速開発のためのコード整理術
sutetotanuki
1
410
[KNOTS 2026登壇資料]AIで拡張‧交差する プロダクト開発のプロセス および携わるメンバーの役割
hisatake
0
300
AWS re:Invent 2025参加 直前 Seattle-Tacoma Airport(SEA)におけるハードウェア紛失インシデントLT
tetutetu214
2
120
AIで開発はどれくらい加速したのか?AIエージェントによるコード生成を、現場の評価と研究開発の評価の両面からdeep diveしてみる
daisuketakeda
1
2.5k
カスタマーサクセス業務を変革したヘルススコアの実現と学び
_hummer0724
0
740
今こそ知るべき耐量子計算機暗号(PQC)入門 / PQC: What You Need to Know Now
mackey0225
3
390
Amazon Bedrockを活用したRAGの品質管理パイプライン構築
tosuri13
5
800
余白を設計しフロントエンド開発を 加速させる
tsukuha
7
2.1k
コマンドとリード間の連携に対する脅威分析フレームワーク
pandayumi
1
470
humanlayerのブログから学ぶ、良いCLAUDE.mdの書き方
tsukamoto1783
0
200
Featured
See All Featured
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
200
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
290
Navigating Weather and Climate Data
rabernat
0
110
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
180
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
350
Testing 201, or: Great Expectations
jmmastey
46
8.1k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2.1k
Into the Great Unknown - MozCon
thekraken
40
2.3k
From π to Pie charts
rasagy
0
130
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
0
260
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
110
Code Reviewing Like a Champion
maltzj
527
40k
Transcript
ϑϩϯτΤϯυϦΞʔ ΩςΫτ 2023 6/8 @ zozo event
Twitter: @yosuke_furukawa Github: yosuke-furukawa
ҙࣄ߲ • ͜ͷεϥΠυ ZOZO ʹ͓͚ΔϦΞʔΩςΫ τͷͰ͋Γ·ͤΜɻ • ॴଐ৫ͱແؔͰ͢ɻ • େ෯ʹ΅্͔ͨ͠ͰҰൠతͳͱͯ͠ޠͬͯ
͍·͢ɻ
ϑϩϯτΤϯυϦΞʔΩςΫτ 2023 • ٕज़ސΛ͍ࣾͯ͠·͢ • ٕज़ސͷதͰҰ൪FAQͳͷ͕ • ʮxxxͰ࡞ͬͨͷΛϦΞʔΩςΫτ͍ͨ͠ͷͰ͕͢ʯͱ͍͏ ͍߹ΘͤͰ͢ •
ࠓճͦͦϦΞʔΩςΫτͱͲ͏͍͏ͷͳͷ͔ • ϦΞʔΩςΫτ͕͏·͍͘͘ͷͱ͏·͍͔͘ͳ͍ͷԿ͕ҧ ͏ͷ͔ʹ͍ͭͯ͠·͢
ϦΞʔΩςΫτͱ
ϦΞʔΩςΫτͱ • Chapter 5: Re-Architecting ϦϑΝΫλϦϯάͷҰछͰ͋Δɻ ϝιουΫϥεͱ͍ͬͨ୯ҐͰͳ ͘ɺϞδϡʔϧίϯϙʔωϯτͱ͍ͬ ͨ୯ҐͰઃܭͷݟ͠Λߦ͏͜ͱ
ϦΞʔΩςΫτͱ • ϦϑΝΫλϦϯάɿίʔυ୯ҐͰͷ࠶࣮ • ϦΞʔΩςΫτɿઃܭ୯ҐͰͷ࠶ߏஙɺϞ δϡʔϧΛׂͯ͠Ұ෦Λॻ͖͑Δ • ϏοάϦϥΠτɿॻ͖͠ɺθϩϕʔεͰͷ ࠶ߏங
ͦͦͳΜͰ ϦΞʔΩςΫτ͕ඞཁͳͷ͔
ͦͦͳΜͰϦΞʔΩςΫτ ͕ඞཁͳͷ͔ • ͜͜ʹ̎ͭͷత͕͋Δ • ιϑτΣΞ࣮རతͳʢظతͳϝϦο τʣ • ৫ͷٕज़ܧঝͷʢதظతͳϝϦοτʣ
ιϑτΣΞ࣮རతͳ • ϞδϡʔϧΛׂ͢Δ͜ͱͰಠཱੑΛߴΊɺґଘΛݮΒ͢ • ΠϯλϑΣʔεͱ࣮Λ͢Δ͜ͱͰؔ৺ΛͰ͖Δ ʢόοΫΤϯυͱϑϩϯτΤϯυͰΠϯλϑΣʔε͚ͩఆٛ ͢Ε͓ޓ͍ͷ࣮ؔ৺ͷ֎ʹͳΔʣ • ͻ͍ͯશମతʹϝϯςφϯείετ͕Լ͕Δํʹಇ͘ •
Ұํɺܾ·Γࣄ૿͑Δ͠ɺ੍͕શ͘ͳ͍༁Ͱແ͍ʢΠ ϯλϑΣʔεͷมߋʹ௧Έ͕͏ɺίʔυΛ࠶ઃܭ͢Δ͜ ͱͰͷҭίετൃੜ͢Δʣ
৫ͷٕज़ܧঝͷ • ఆظతʹϦΞʔΩςΫτɾϦϑΝΫλϦϯά Λߦ͏͜ͱ͕ίʔυͷϒϥοΫϘοΫεԽΛ ͙͜ͱʹͳΔ • ͻ͍ٕͯज़ͷঝʹͭͳ͕Δ
৫ͷٕज़ܧঝͷ • ίʔυͷΦʔφʔγοϓ͕ॏཁ • ࣗͷίʔυͰ͋Δɺࣗͷ͜ͱͰ͋Δͱ͍͏ ҙࣝ • ʮ࡞Δ͚ͩ࡞ͬͯޙଞਓʹͤΔʯͱ͍͏Ϛ ΠϯυͰൃల͠ͳ͍ •
ࣗͷͷͩͱ͍͏ҙࣝΛ࣋ͭ
৫ͷٕज़ܧঝͷ • ࣜભٶͱ͍͏ߟ͑ํ • ࣜʢఆظతʹʣભٶʢ৽఼͍ࣾ͠ΛΓɺޚਆମΛભ͢ʣ • ۩ମతʹ20ʹҰඞͣߦ͏ɻભٶʹΑΔࣄۀඅ2013Ͱ550ԯԁ • ࣜભٶࣗମਖ਼ٶͷҠಈʢϝΠϯϞδϡʔϧͷҠ͠ସ͑ʣ͕ऴΘͬͨ ޙɺผٶͷҠಈʢαϒϞδϡʔϧͷೖΕସ͑ʣ͕͋Δɻ
• ͜ͷؒɺ2ؒ160໊ͷٕೳऀͷޏ༻͕ଓ͘ɻผٶͷભٶऴྃޙɺएख ٕೳ༏लऀ30໊΄ͲΛਆٶͷৗۈ৬һͱͯ͢͠ɻ • ࠃަ௨লͷίϥϜʮࣜભٶʹݟΔٕज़ܧঝͱٕज़ऀ֬อ https://www.mlit.go.jp/hakusyo/mlit/h25/hakusho/h26/html/ n1233c20.htmlʯΑΓ
৫ͷٕज़ܧঝͷ • ࣜભٶͰఆظతʹϦΞʔΩςΫτΛߦ͏͜ͱͰɺ ٕज़ऀͷҭͱΦʔφʔγοϓͷ֬อΛߦ͍ͬͯΔ • γεςϜͷϦΞʔΩςΫτ͕͜͜ૂ͍Ͱ͋Δࣄ͕ଟ ͍ • ୯७ʹظతͳ࣭վળ͕త͚ͩͩͱ͢Δͱظͷ අ༻ରޮՌͷ͚ͩʹͳͬͯ͠·͏͕ɺ͜͜ΛΘ͔ͬ
ͯ͘Ε͍ͯΔਓ͕ݱΛޙԡͯ͘͠͠ΕΔͱॿ͔Δ
ϑϩϯτΤϯυ ϦΞʔΩςΫτ
ϑϩϯτΤϯυϦΞʔΩςΫτ • όοΫΤϯυͱϑϩϯτΤϯυΛΓ͚Δ ͱ͜Ζ͔Βελʔτ • ͜ΕϨΨγʔιϑτΣΞվળΨΠυʹ ࡌͬͯΔํ๏ • ͦͷޙͲ͏͢Δͱྑ͍ͷ͔
ϑϩϯτΤϯυϦΞʔΩςΫτ • Α͋͘Δύλʔϯ • ಛఆͷը໘͚ܾͩΊ͔ͯͦ͜ΒऔΓΉʢZOZO͕͜ͷύ λʔϯɺτοϓϖʔδ͔Βมߋ͢Δʣ • ͬͱίϯϙʔωϯτΛׂͯ͠ڞ௨ͷίϯϙʔωϯτʹ Γग़͢ͱ͜Ζ͔Β࢝ΊΔʢύʔπΛ·ͣ࠷ॳʹ࡞ͬͯ͠· ͍ɺ͔ͦ͜ΒΈ্͍͛ͯ͘ʣ
• Ұؾʹϒϧυʔβʔ࡞ઓʢΧοͱͳͬͯશ෦ Next.js ͰϦϥΠ τ͠·ͨ͠Έ͍ͨͳʣ
ಛఆͷը໘ίϯϙʔωϯτ͚ܾͩ Ί͔ͯͦ͜Βখ࢝͘͞ΊΔύλʔϯ • ࣮Ұ൪ଟ͍͔ • ଟ͘ͷػೳ͕͋ͬͯɺશ෦Λஔ͖͑Δͷ͕͠ ͘ɺঃʑʹஔ͖͑Δ͔͠ํ๏͕ͳ͍࣌ʹΔύ λʔϯ • ͍͖ͳΓϏοάϦϥΠτ͠Α͏ͱ͢Δͱࣦഊ͕͠
ͪͳͷͰɺطଘͷػೳՃΛ͠ͳ͕Β৽نϦΞʔ ΩςΫτΛซ༻͢Δ࣌ʹߦ͏
ͬͱίϯϙʔωϯτΛׂͯ͠ɺڞ௨ ύʔπΛ࡞Δͱ͜Ζ͔Β࢝Ίͯޙ͔Βঃʑ ʹڞ௨ύʔπʹدͤͯྑ͍ͯ͘͘͠ • ϘτϜΞοϓʹڞ௨ͷίϯϙʔωϯτ͔Β࣮ࢪ͢ΔΞ ϓϩʔν • ϨΠϠΛػೳ࣠Ͱׂ࣮ͯ͠ࢪ͢Δͷ͕̍ͭͷύλʔ ϯͩͱ͢Δͱɺ෦ͷಛੑͰׂ࣮ͯ͠ࢪ͢Δํ๏ •
౷Ұ͞Εͨίϯϙʔωϯτ͕ͪΌΜͱΑ͘Ͱ͖ͨͷ Ͱ͋Ε߹ੑ͑ΒΕΔ͠ɺ͏·͍͚͘ύʔπ ͷ࠶ར༻ੑ͕ߴ·Γੜ࢈ੑ্͕Δ
ͬͱίϯϙʔωϯτΛׂͯ͠ɺڞ௨ ύʔπΛ࡞Δͱ͜Ζ͔Β࢝Ίͯޙ͔Βঃʑ ʹڞ௨ύʔπʹدͤͯྑ͍ͯ͘͘͠ • ҰํͰڞ௨ίϯϙʔωϯτઃܭ͕͍͠ɻ • ޙʹ৮ΕΔ͕ɺϏοάϦϥΠτʹͳΓ͕ͪ • ͜ͷํ๏Ͱ͏·͍͘͘ύλʔϯ͋·Γݟͨ͜ ͱ͕ͳ͍
• ׂͷํ͕ஞ࣍తʹͳΒͣɺൈຊతͳׂʹ ͳΔࣄ͕͋Δ
Ұؾʹϒϧυʔβʔ࡞ઓ • Χοͱͳͬͯશ෦ͬͱ͖·ͨ͠ • Զʹ1ि͍ؒͩ͘͞ɻຊͷϦΞʔΩςΫτΛ ͓ݟͤ͠·͢Αύλʔϯ • ظతʹऴΘΔ͠ɺ෦࣭͕ؾʹͳΔ͕ɺ ϨϏϡʔ͕Ͱ͖ΔͳΒ࠷ߴ
Ұؾʹϒϧυʔβʔ࡞ઓ • ͦΜͳʹ͘ͳ͍ • ݸਓͷྗྔʹґଘͯ͠͠·͏ • ٕͦͦज़ͷܧঝΛ͍ͨ͠ͷʹɺ݁ہগͷ ਓʹ͔͠ܧঝ͞Εͳ͍ • ͨͩظతʹऴΘΒͤΔ͜ͱ͕Ͱ͖ͯɺ͕Ұ
ؾʹਐΉ
݁ہϦΞʔΩςΫτͷϑϩϯτ ΤϯυͰΔํ๏ͬͯ • ಛఆͷը໘ɾػೳɾίϯϙʔωϯτΛܾΊͯϦΞʔ ΩςΫτͯ͠ɺஞ࣍తʹม͍͑ͯ͘ํ๏͔͋͠· ΓϫʔΫͨ͠ͷΛݟͳ͍ • ϏοάϦϥΠτʹͳΒͳ͍Α͏ʹ͠ͳ͍ͱ͍͚ͳ ͍ •
ݸਓͷྗྔͰୡͰ͖Εྑ͍͕ɺ߹Αͦ͘͏ ͍͏ύϫʔͷ͋Δਓ͕͍ͳ͍͜ͱଟ͍
ϦΞʔΩςΫτ Ξϯνύλʔϯू
ϦΞʔΩςΫτΞϯνύλʔϯ ू • पลͷٕज़͔ͬΓͬͪΌ͏ύλʔϯ • eslint, prettier, pnpm, yarn, vite,
vitest, ͜͏͍͏πʔ ϧΛͲ͏͢Δ͔͔ΓΜͰલʹਐΜͰͳ͍ύλʔϯ • ඪ४ͷղ๏Έ͍ͨͳͷΛ͍ٻΊ͗ͯ͢Δ • ਖ਼ղͳΜͯແ͍ɺ·ͣʹਐΊͨΒͦΕ͕ਖ਼ղ • ޙ͔ΒͳΜͱͰͳͬͨΓ͢Δ
ϦΞʔΩςΫτΞϯνύλʔϯ ू • ·ͩݟ͵ແݶͷকདྷʹࢥ͍Λͤͯ͠·͏ύλʔϯ • ͜Μͳ͜ͱ͍͍ͳ • Ͱ͖ͨΒ͍͍ͳ • ͋Μͳػೳ͜Μͳίϯϙʔωϯτ͍ͬͺ͍͋Δ͚Ͳ
• ਐ·ͳ͍ʂʂʂ • શ෦Λ·Δͬͱ࠷ॳ͔ΒΑ͘͢Δ͜ͱͰ͖ͳ͍ • ͪΐͬͱͣͭͪΐͬͱͣͭܧଓతʹΑ͘͢Δ͜ͱ͔͠Ͱ͖ͳ͍
ϦΞʔΩςΫτΞϯνύλʔϯ ू • طଘػೳͷΤϯϋϯεΛετοϓͤͯ͞ϦΞʔΩςΫτ༏ઌͪ͠Ό͏ύλʔ ϯ • γϯϓϧʹαʔϏεͷػೳՃ͕ࢭ·Δ • جຊࣹܸͭͭ͠લਐ •
ελʔτΞοϓͱ͔ͩͱ྆ํΒͳ͍ͱ͍͚ͳ͍ͷ͕ਏ͍ͱ͜Ζ • ܦӦஅͰϦΞʔΩςΫτ༏ઌ͢ΔͳΒྑ͍͕ɺΤϯϋϯε͠ͳ͕Β Δͷ͕Ұൠత • ػೳը໘ׂ͕͞ΕͯͨΒ͚ͩ͜͜ػೳՃ͠ͳ͍Ͱ΄͍͠ͱ͍͏ ͷݴ͍͍͢
·ͱΊ
·ͱΊ • ϦΞʔΩςΫτͱ࠶ઃܭͷ͜ͱ • ϦΞʔΩςΫτΛΔҙຯ্࣭ɺੜ࢈ੑվળ͚ͩͰͳ͍ • ٕज़ͷܧঝͱίʔυͷΦʔφʔγοϓΛ࣋ͭ͜ͱʢࣜભٶʣ • ϦΞʔΩςΫτΛΔࡍείʔϓΛௐ͢Δ͜ͱ •
ͪΖΜҰؾʹͰ͖ΔͳΒͦΕͰྑ͍͕ɺݸਓʹґଘ͢ΔͷͰؾ Λ͚ͭΔ͜ͱ • Ξϯνύλʔϯ͍͔ͭ͋͘Δɺࣗͨͪʹͯ·ͬͯͳ͍͔Λ֬ ೝ͍ͨ͠