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.4k
そのSPA、本当に必要ですか?
nishaya
May 31, 2017
Tweet
Share
More Decks by nishaya
See All by nishaya
ブラウザで一緒に音楽をつくる
nishaya
0
2.1k
Webで音楽を奏でる
nishaya
0
6.1k
ES.next — 20年目のECMAScriptに向けて
nishaya
0
1.3k
Other Decks in Technology
See All in Technology
Backboneとしてのtimm2025
yu4u
3
850
会社にデータエンジニアがいることでできるようになること
10xinc
8
1.2k
LLM 機能を支える Langfuse / ClickHouse のサーバレス化
yuu26
9
2.7k
モノレポにおけるエラー管理 ~Runbook自動生成とチームメンションの最適化
biwashi
0
420
Claude Codeは仕様駆動の夢を見ない
gotalab555
23
7.3k
Amazon Inspector コードセキュリティで手軽に実現するシフトレフト
maimyyym
0
150
AIが住民向けコンシェルジュに?Amazon Connectと生成AIで実現する自治体AIエージェント!
yuyeah
0
230
UDDのススメ - 拡張版 -
maguroalternative
1
640
Exadata Database Service on Dedicated Infrastructure セキュリティ、ネットワーク、および管理について
oracle4engineer
PRO
1
330
キャリアを支え組織力を高める「多層型ふりかえり」 / 20250821 Kazuki Mori
shift_evolve
PRO
2
190
結局QUICで通信は速くなるの?
kota_yata
9
7.5k
PFEM Online Feature Flag @ newmo
shinyaishitobi
2
180
Featured
See All Featured
Designing Experiences People Love
moore
142
24k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Statistics for Hackers
jakevdp
799
220k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.4k
GraphQLとの向き合い方2022年版
quramy
49
14k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
Building an army of robots
kneath
306
45k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Producing Creativity
orderedlist
PRO
347
40k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Balancing Empowerment & Direction
lara
2
570
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ʹखΛग़͞ͳ͍ • έʔεʹϚον͢Δ͔ͷஅΛ • ͦͷ্ͰɺΔͳΒ͔͠Δ͖४උΛ • ͛͗ͣ͢ɺίϯτϩʔϧՄೳͳൣғͰਐΊΕා͘ͳ͍