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
そのSPA、本当に必要ですか?
Search
nishaya
May 31, 2017
Technology
0
3.5k
そのSPA、本当に必要ですか?
nishaya
May 31, 2017
Tweet
Share
More Decks by nishaya
See All by nishaya
ブラウザで一緒に音楽をつくる
nishaya
0
2.2k
Webで音楽を奏でる
nishaya
0
6.2k
ES.next — 20年目のECMAScriptに向けて
nishaya
0
1.3k
Other Decks in Technology
See All in Technology
トップマネジメントとコンピテンシーから考えるエンジニアリングマネジメント
zigorou
3
550
Eight Engineering Unit 紹介資料
sansan33
PRO
1
6.9k
EMからVPoEを経てCTOへ:マネジメントキャリアパスにおける葛藤と成長
kakehashi
PRO
7
880
メタデータ同期に潜んでいた問題 〜 Cache Stampede 時の Cycle Wait を⾒つけた話
lycorptech_jp
PRO
0
150
Oracle Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
4
1.6k
開発組織の課題解決を加速するための権限委譲 -する側、される側としての向き合い方-
daitasu
4
250
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
44k
GitLab Duo Agent Platform + Local LLMサービングで幸せになりたい
jyoshise
0
120
バクラクのSREにおけるAgentic AIへの挑戦/Our Journey with Agentic AI
taddy_919
2
1k
Bill One 開発エンジニア 紹介資料
sansan33
PRO
5
18k
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.4k
問い合わせ自動化の技術的挑戦
recruitengineers
PRO
2
150
Featured
See All Featured
Faster Mobile Websites
deanohume
310
31k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
290
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
87
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
210
Building Adaptive Systems
keathley
44
2.9k
ラッコキーワード サービス紹介資料
rakko
1
2.5M
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
370
Evolving SEO for Evolving Search Engines
ryanjones
0
150
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
230
30 Presentation Tips
portentint
PRO
1
250
How to Think Like a Performance Engineer
csswizardry
28
2.5k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
63
Transcript
ͦͷSPAɺ ຊʹඞཁͰ͔͢ʁ Roppongi.rb #3 2017/05/31 ೋࣾ୩ ߉༎ @nishaya
ࣗݾհ • ೋࣾ୩ ߉༎ • GitHub: @nishaya • WebΞϓϦέʔγϣϯΤϯδχΞ •
(ג) Speee ϓϩδΣΫτਪਐࣨ • React2016ʙ
࠷ۙͷࣄ • ۈଵγεςϜ1 • API: Rails w/jsonapi-resources • Front: React/Redux
1 χϡʔεղઆ - ϥζύΠͰένένۈଵཧγεςϜɺSpeee͕ɿITpro http:/ /itpro.nikkeibp.co.jp/atcl/column/14/346926/050800960/
झຯͷ։ൃ • React/ReduxͰγϯηαΠβʔΛ࡞ͬ ͨ2 • ԻΛग़͍ͨ͠ͱ͍͏ڧ͍Ϟνϕʔ γϣϯ • React/Redux৯Θͣݏ͍Λࠀ͢Δ •
ࣄલʹ͓͍ͬͯͨ͜ͱͰϓϩδΣ ΫτͰͷ໎͍͕ܰݮ͞Εͨ 2 ReactͰγϯηαΠβʔΛ࡞ͬͨ - Speee DEVELOPER BLOG http:/ /tech.speee.jp/entry/2017/04/06/100000
AGENDA • SPAʹͭΒ͍ʁ • SPA=ϑϩϯτΤϯυʁ • ͦͷSPAɺຊʹඞཁͰ͔͢ʁ • ͦΕͰSPAΛ࡞ΔͳΒ •
զʑԿΛ͔ͨ͠
SPAʹͭΒ͍ʁ • ReactΘ͔Βͳ͗͢ΔɻReduxՃΘΔͱ͞Βʹ • JSXॻ͖ͨ͘ͳ͍ • σʔλϑϩʔ͍ͮΒ͍
SPA=ϑϩϯτΤϯυʁ WebΞϓϦέʔγϣϯͷϑϩϯτΤϯυͱ͍͏ΑΓ… • APIͱ࿈ܞͯ͠ಈ࡞͢ΔΫϥΠΞϯτΞϓϦέʔγϣϯ • αʔόαΠυͱҟͳΔίϯςΩετΛ࣋ͬͨผͷαʔϏε ैདྷͷϑϩϯτΤϯυͷԆͱͯ͠ɺ ಉ͡εΩϧ/ϚΠϯυηοτͰΓͱ͛Δͷ͍͠ɻ
ͦͷSPAɺຊʹඞཁͰ͔͢ʁ SPA͕࠷దղ͔ɺཱͪࢭ·ͬͯߟ͑Δ • ͪΐͬͱUI֨ྑ͍ͨ͘͠ • RailsͷΤίγεςϜͷதͰReact͑े • ͍ܰؾ࣋ͪͰΔͱࢮ͵ • ࠓͳΜͱ͔ಈ͘ͷ͕࡞Εͯɺӡ༻͍ͯ͘͠͏ͪʹࢮ͵
• ! ͬͯΈ͍ͨ " ͍ͬͯ͘
ͦΕͰSPAΛ࡞ΔͳΒ ࣄલʹ͓͖͍ͬͯͨ͜ͱ • έʔεͷݟۃΊ • ํੑ • ணखલͷ४උ
έʔεͷݟۃΊ SPAʹϚον͢ΔέʔεΛߟ͑Δ • APIଆʹશͯͷσʔλͱϩδοΫΛஔ͖ɺදࣔɺΠϯλϥΫγϣ ϯΛߦ͏͜ͱʹಛԽ • ෳͷϚΠΫϩαʔϏεΛ౷߹͢Δ৽͍͠αʔϏεͱͯ͠ • όοΫΤϯυͱϑϩϯτΛઈରࠞͥͨ͘ͳ͍
ํੑΛܾΊΔ • ࣮ํΛݻΊΔ • Smart/Dumb ComponentͷΓ͚ • stateͷઃܭํ • ߈Ί͗͢ͳ͍
• ཧղͷ͢͠͞ޮͷ͏ͪ
ணखલͷ४උ • ެࣜಡΉ • best practiceΛ಄ʹೖΕΔ • ࠷ݶඞཁͳͷΛΓɺখ࢝͘͞ΊΔ • ԿͰ͍͍͔ΒϓϩδΣΫτͱผʹԿ͔ಈ͘ͷΛ࡞Δ
• ϓϩδΣΫτͰ׆͔ͤΔֶͼ͕͋Δͣ
զʑԿΛ͔ͨ͠ • ެࣜͷϕετϓϥΫςΟεʹै • JSON APIͷ࠾༻(jsonapi-resources) • APIͱϑϩϯτͷίϛϡχέʔγϣϯίετݮ • APIRuby/RailsͰͳ͍͍͕ͯ͘ɺϝϯςφϯεੑΛॏࢹ
• ϑϩϯτʹAPIଆͷresourceͱରԠͨ͠ϞσϧΛಋೖ͠ɺUI Componentͱ • σʔλϑϩʔΛ͍͘͢
·ͱΊ • ແཧͯ͠/͍ܰؾ࣋ͪͰSPAʹखΛग़͞ͳ͍ • έʔεʹϚον͢Δ͔ͷஅΛ • ͦͷ্ͰɺΔͳΒ͔͠Δ͖४උΛ • ͛͗ͣ͢ɺίϯτϩʔϧՄೳͳൣғͰਐΊΕා͘ͳ͍