$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
そのSPA、本当に必要ですか?
Search
nishaya
May 31, 2017
Technology
0
3.4k
そのSPA、本当に必要ですか?
nishaya
May 31, 2017
Tweet
Share
More Decks by nishaya
See All by nishaya
ブラウザで一緒に音楽をつくる
nishaya
0
2.1k
Webで音楽を奏でる
nishaya
0
6.2k
ES.next — 20年目のECMAScriptに向けて
nishaya
0
1.3k
Other Decks in Technology
See All in Technology
初めてのDatabricks AI/BI Genie
taka_aki
0
200
ChatGPTで論⽂は読めるのか
spatial_ai_network
11
29k
マイクロサービスへの5年間 ぶっちゃけ何をしてどうなったか
joker1007
14
6.4k
Kiro を用いたペアプロのススメ
taikis
0
110
SSO方式とJumpアカウント方式の比較と設計方針
yuobayashi
7
690
Python 3.14 Overview
lycorptech_jp
PRO
1
120
業務のトイルをバスターせよ 〜AI時代の生存戦略〜
staka121
PRO
2
220
多様なデジタルアイデンティティを攻撃からどうやって守るのか / 20251212
ayokura
0
480
Jakarta Agentic AI Specification - Status and Future
reza_rahman
0
110
S3を正しく理解するための内部構造の読解
nrinetcom
PRO
2
150
まだ間に合う! Agentic AI on AWSの現在地をやさしく一挙おさらい
minorun365
4
220
年間40件以上の登壇を続けて見えた「本当の発信力」/ 20251213 Masaki Okuda
shift_evolve
PRO
1
140
Featured
See All Featured
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
We Have a Design System, Now What?
morganepeng
54
7.9k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
1k
Optimising Largest Contentful Paint
csswizardry
37
3.5k
Optimizing for Happiness
mojombo
379
70k
The Pragmatic Product Professional
lauravandoore
37
7.1k
Being A Developer After 40
akosma
91
590k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
54k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
The Invisible Side of Design
smashingmag
302
51k
Raft: Consensus for Rubyists
vanstee
141
7.2k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
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ʹखΛग़͞ͳ͍ • έʔεʹϚον͢Δ͔ͷஅΛ • ͦͷ্ͰɺΔͳΒ͔͠Δ͖४උΛ • ͛͗ͣ͢ɺίϯτϩʔϧՄೳͳൣғͰਐΊΕා͘ͳ͍