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
Technical Selection for Surviving the Front End...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
gutchom
September 16, 2017
Technology
220
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Technical Selection for Surviving the Front End Sengoku Period
フロントエンド戦国時代を生き延びるための技術選定
@Webフレーム品評会
gutchom
September 16, 2017
Other Decks in Technology
See All in Technology
どうして今サーバーサイドKotlinを選択したのか
nealle
0
180
product engineering with qa
nealle
0
140
きのこカンファレンス2026_肩書きを外したとき私は誰か
yamasatimi
1
120
AWS Summit の片隅で、体育座りしながらコミュニティがにぎわう理由を考えた
k_adachi_01
2
330
WebGIS AI Agentの紹介
_shimizu
0
610
40代で“やっとエンジニアになれた”――閉じた学びを開き、空の青さを知る / 20260628 Naoki Takahashi
shift_evolve
PRO
4
1.6k
技術・能力を向上する原理原則 #きのこセッションa #きのこ2026
bash0c7
0
190
AI時代における最適なQA組織の作り方
ymty
3
330
FinOps X 2026 Recap from Engineer Side #JapanFinOps
chacco38
0
240
Why is RC4 still being used?
tamaiyutaro
0
270
Hatena Engineer Seminar 37 jj1uzh
jj1uzh
0
410
RAGの精度向上とエージェント活用
kintotechdev
2
120
Featured
See All Featured
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
380
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
62
44k
AI: The stuff that nobody shows you
jnunemaker
PRO
8
760
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
410
It's Worth the Effort
3n
188
29k
The Cost Of JavaScript in 2023
addyosmani
55
10k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
How Software Deployment tools have changed in the past 20 years
geshan
0
34k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.3k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.5k
A Tale of Four Properties
chriscoyier
163
24k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Transcript
ϑϩϯτΤϯυઓࠃ࣌Λ ੜ͖ԆͼΔͨΊͷ ٕज़બఆ @gutchom 20179݄16 WebϑϨʔϜϫʔΫධձ
ࣗݾհ @gutchom (͙ͬͪΐΉ) ϑϩϯτΤϯυΤϯδχΞ TypeScript / JavaScript React.js / Vue.js
ࣗݾհ झຯ։ൃ ࣄແ৬
ࣗݾհ ͍·࡞ͬͯΔͷ: ݕࡧΫΤϦϏϧμʔ
None
ຊ͓͢͠ΔτϐοΫ̐
ͦͷϑϩϯτΤϯυɺ ϞμϯͰ͋Δඞཁ͕͋Γ·͔͢ʁ
React.jsͱVue.js
ϞμϯϑϩϯτΤϯυ ڥߏஙͷপ
ޙʹࢮͳͳ͍ͨΊͷ ϑϩϯτΤϯυڥ
ͦͷϑϩϯτΤϯυɺ ϞμϯͰ͋Δඞཁ͕͋Γ·͔͢ʁ
ͦͷϑϩϯτΤϯυɺ ϞμϯͰ͋Δඞཁ͕͋Γ·͔͢ʁ
⚠͜ͷ߲ࢲ͙ͬͪΐΉͷಠࣗݟղͰ͢⚠ ͦͷϑϩϯτΤϯυɺ ϞμϯͰ͋Δඞཁ͕͋Γ·͔͢ʁ
• jQueryແࡑ ͦͷϑϩϯτΤϯυɺ ϞμϯͰ͋Δඞཁ͕͋Γ·͔͢ʁ
• jQuery(DOMͷૢ࡞ʹݶΓ)ແࡑ ͦͷϑϩϯτΤϯυɺ ϞμϯͰ͋Δඞཁ͕͋Γ·͔͢ʁ
• jQuery(DOMͷૢ࡞ʹݶΓ)ແࡑ • ΩʔϙΠϯτView͕StateΛ͔࣋ͭ൱͔ ͦͷϑϩϯτΤϯυɺ ϞμϯͰ͋Δඞཁ͕͋Γ·͔͢ʁ
• jQuery(DOMͷૢ࡞ʹݶΓ)ແࡑ • ΩʔϙΠϯτView͕StateΛ͔࣋ͭ൱͔ • ϞμϯϑϩϯτΤϯυόζϫʔυ ͦͷϑϩϯτΤϯυɺ ϞμϯͰ͋Δඞཁ͕͋Γ·͔͢ʁ
• jQuery(DOMͷૢ࡞ʹݶΓ)ແࡑ • ΩʔϙΠϯτView͕StateΛ͔࣋ͭ൱͔ • ϞμϯϑϩϯτΤϯυόζϫʔυ ΫϥΠΞϯταΠυΞϓϦέʔγϣϯ։ൃ ͦͷϑϩϯτΤϯυɺ ϞμϯͰ͋Δඞཁ͕͋Γ·͔͢ʁ
ॏཁͳͷɺ
GUIΞϓϦέʔγϣϯ։ൃͷ ֮ޛ
GUIΞϓϦέʔγϣϯ։ൃͷ ֮ޛ
GUIΞϓϦέʔγϣϯ։ൃͷ ֮ޛ
GUIΞϓϦέʔγϣϯ։ൃͷ ֮ޛ
React.jsͱVue.js
React.jsͱVue.js ؆қൺֱରද
React.jsͱVue.js React.js Vue.js (v2.x) VirtualDOM YES YES Componentࢦ YES YES
JSX Must Not have to Ϗϧυπʔϧ Must Not have to σʔλόΠϯσΟϯά NO YES TypeScript Good Hmm… ؆қൺֱରද
React.jsͱVue.js ͦΕͧΕΛ༻͍࣮ͨࡍͷίʔυ
React.jsͰͷίʔυ
React.jsͰͷίʔυ ϥΠϑαΠΫϧϝιουɾΠϕϯτϋϯυϥ
React.jsͰͷίʔυ Ϩϯμʔؔ (ϚʔΫΞοϓ)
React.jsͰͷίʔυ Stateless Functional Component (ঢ়ଶͱϥΠϑαΠΫϧΛ࣋ͨͳ͍ίϯϙʔωϯτ)
Vue.jsͰͷίʔυ
None
ESΫϥεߏจ͡Όͳ͍…
ESΫϥεߏจ͡Όͳ͍… ͳͷͰ ΦϒδΣΫτʹهड़ͨ͠ ίϯϙʔωϯτఆٛΛ ίϯετϥΫλ
ESΫϥεߏจ͡Όͳ͍… ͳͷͰ ΦϒδΣΫτʹهड़ͨ͠ ίϯϙʔωϯτఆٛΛ ίϯετϥΫλ ੜͷJavaScriptͰهड़Մೳʂ
VueΠϯελϯεͷ࣋ͭػೳ
VueΠϯελϯεͷ࣋ͭػೳ • JSͰͷมߋΛViewʹࣗಈө • Viewͷೖྗ͕JSͷΛࣗಈมߋ • มߋ࣌ͷΠϕϯτൃՐ • getter/setter มͷํόΠϯσΟϯά
ͱ͜ΖͰ
Vueίϯϙʔωϯτ Ϟμϯʹॻ͖͍ͨ
(ຐվ)Vue.jsͰͷίʔυ Vueίϯϙʔωϯτఆٛ VueςϯϓϨʔτఆٛ (Pug/Jade)
(ຐվ)Vue.jsͰͷίʔυ VueςϯϓϨʔτఆٛ (Pug/Jade) VueςϯϓϨʔτఆٛ (Pug/Jade)
ϞμϯϑϩϯτΤϯυ ڥߏஙͷপ
• ։ൃڥ͕୲͏λεΫ ϞμϯϑϩϯτΤϯυ ڥߏஙͷপ
• ։ൃڥ͕୲͏λεΫ • ϒϥβͰಈ࡞͢ΔJS࣮ߦίʔυͷϏϧυ ϞμϯϑϩϯτΤϯυ ڥߏஙͷপ
• ։ൃڥ͕୲͏λεΫ • ϒϥβͰಈ࡞͢ΔJS࣮ߦίʔυͷϏϧυ (ECMAScript 6+, JSX, TypeScript…) ϞμϯϑϩϯτΤϯυ ڥߏஙͷপ
• ։ൃڥ͕୲͏λεΫ • ϒϥβͰಈ࡞͢ΔJS࣮ߦίʔυͷϏϧυ (ECMAScript 6+, JSX, TypeScript…) • ϝλݴޠ͔ΒCSSͷίϯόʔτ
ϞμϯϑϩϯτΤϯυ ڥߏஙͷপ
• ։ൃڥ͕୲͏λεΫ • ϒϥβͰಈ࡞͢ΔJS࣮ߦίʔυͷϏϧυ (ECMAScript 6+, JSX, TypeScript…) • ϝλݴޠ͔ΒCSSͷίϯόʔτ
(CSSnext, Sass, Less, Stylus…) ϞμϯϑϩϯτΤϯυ ڥߏஙͷপ
• ։ൃڥ͕୲͏λεΫ • ϒϥβͰಈ࡞͢ΔJS࣮ߦίʔυͷϏϧυ (ECMAScript 6+, JSX, TypeScript…) • ϝλݴޠ͔ΒCSSͷίϯόʔτ
(CSSnext, Sass, Less, Stylus…) • ϞοΫαʔόʔͷىಈ ϞμϯϑϩϯτΤϯυ ڥߏஙͷপ
• ։ൃڥ͕୲͏λεΫ • ϒϥβͰಈ࡞͢ΔJS࣮ߦίʔυͷϏϧυ (ECMAScript 6+, JSX, TypeScript…) • ϝλݴޠ͔ΒCSSͷίϯόʔτ
(CSSnext, Sass, Less, Stylus…) • ϞοΫαʔόʔͷىಈ • ࣗಈςετͷ࣮ߦ ϞμϯϑϩϯτΤϯυ ڥߏஙͷপ
• ։ൃڥ͕୲͏λεΫ • ϒϥβͰಈ࡞͢ΔJS࣮ߦίʔυͷϏϧυ (ECMAScript 6+, JSX, TypeScript…) • ϝλݴޠ͔ΒCSSͷίϯόʔτ
(CSSnext, Sass, Less, Stylus…) • ϞοΫαʔόʔͷىಈ • ࣗಈςετͷ࣮ߦ • etc… ϞμϯϑϩϯτΤϯυ ڥߏஙͷপ
• ओཁπʔϧ • Node.js: ։ൃϚγϯ্ͰJavaScriptιϑτΣΞΛ࣮ߦ • npm: ύοέʔδϚωʔδϟʔ • babel:
JSͷίϯόʔλʔ • webpack / browserify: ϥΠϒϥϦґଘؔղܾπʔϧ • Ճ͑ͯ ֤छTesting framework, ߏจνΣοΧʔ, ϞμϯϑϩϯτΤϯυ ڥߏஙͷপ
• ओཁπʔϧ • Node.js: ։ൃϚγϯ্ͰJavaScriptιϑτΣΞΛ࣮ߦ • npm: ύοέʔδϚωʔδϟʔ • babel:
JSͷίϯόʔλʔ • webpack / browserify: ϥΠϒϥϦґଘؔղܾπʔϧ • Ճ͑ͯ ֤छTesting framework, ߏจνΣοΧʔ, ϞμϯϑϩϯτΤϯυ ڥߏஙͷপ
• ओཁπʔϧ • Node.js: ։ൃϚγϯ্ͰJavaScriptιϑτΣΞΛ࣮ߦ • npm: ύοέʔδϚωʔδϟʔ • babel:
JSͷίϯόʔλʔ • webpack / browserify: ϥΠϒϥϦґଘؔղܾπʔϧ • Ճ͑ͯ ֤छTesting framework, ߏจνΣοΧʔ, ϞμϯϑϩϯτΤϯυ ڥߏஙͷপ
• ओཁπʔϧ • Node.js: ։ൃϚγϯ্ͰJavaScriptιϑτΣΞΛ࣮ߦ • npm: ύοέʔδϚωʔδϟʔ • babel:
τϥϯεύΠϥ (ίϯόʔλʔ) • webpack / browserify: ϥΠϒϥϦґଘؔղܾπʔϧ • Ճ͑ͯ ֤छTesting framework, ߏจνΣοΧʔ, ϞμϯϑϩϯτΤϯυ ڥߏஙͷপ
• ओཁπʔϧ • Node.js: ։ൃϚγϯ্ͰJavaScriptιϑτΣΞΛ࣮ߦ • npm: ύοέʔδϚωʔδϟʔ • babel:
τϥϯεύΠϥ (ίϯόʔλʔ) • webpack / browserify: ϥΠϒϥϦґଘؔղܾπʔϧ • Ճ͑ͯ ֤छTesting framework, ߏจνΣοΧʔ, ϞμϯϑϩϯτΤϯυ ڥߏஙͷপ
• ओཁπʔϧ • Node.js: ։ൃϚγϯ্ͰJavaScriptιϑτΣΞΛ࣮ߦ • npm: ύοέʔδϚωʔδϟʔ • babel:
τϥϯεύΠϥ (ίϯόʔλʔ) • webpack / browserify: ϥΠϒϥϦґଘؔղܾπʔϧ • Ճ͑ͯ ֤छTesting framework, ߏจνΣοΧʔ, ϞμϯϑϩϯτΤϯυ ڥߏஙͷপ
ޙʹࢮͳͳ͍ͨΊͷ ϑϩϯτΤϯυڥ
ޙʹࢮͳͳ͍ͨΊͷ ϑϩϯτΤϯυڥ • ϥΠϒϥϦͱϏδωεϩδοΫૄ݁߹ʹ
ޙʹࢮͳͳ͍ͨΊͷ ϑϩϯτΤϯυڥ • ϥΠϒϥϦͱϏδωεϩδοΫૄ݁߹ʹ • ݸʑͷπʔϧৗʹೖΕସ͑Մೳʹ
ޙʹࢮͳͳ͍ͨΊͷ ϑϩϯτΤϯυڥ • ϥΠϒϥϦͱϏδωεϩδοΫૄ݁߹ʹ • ݸʑͷπʔϧৗʹೖΕସ͑Մೳʹ • ڥߏஙͷ࣌ͰઃܭࢦΛ໌֬ʹ࣋ͭ
ͦΕͰΈͳ͞Μ ઃܭ͠·͠ΐ͏ɺ
࠷ߴͷ ϢʔβʔମݧΛʂ
͝੩ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠ @gutchomͰͨ͠