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
ViewModelはデザインパターンの夢を見るか
Search
Edward Fox
October 13, 2016
Technology
0
220
ViewModelはデザインパターンの夢を見るか
20161013
Meguro.es @ Drecom
http://meguroes.connpass.com/event/32167/
Edward Fox
October 13, 2016
Tweet
Share
More Decks by Edward Fox
See All by Edward Fox
Priorityを制するものはローディングを制す
edwardkenfox
4
700
Lambda@Edgeを利用したサードパーティJavaScriptのカナリアリリース / Canary release using Lamdba@Edge
edwardkenfox
0
90
AWS re:Invent 2019 / Hackathon for Good 参加録
edwardkenfox
2
570
Repro basketball club
edwardkenfox
0
240
Introduction to UX Optimizer
edwardkenfox
0
98
フロントエンド開発の落とし穴 / Fallacies of Client Side Programming (2019ver)
edwardkenfox
0
310
僕とprototypeとJSONで / Me and prototype down by the JSON
edwardkenfox
0
130
クライアントサイド開発の落とし穴 / Fallacies of Client Side Programming
edwardkenfox
0
430
Beacon API ことはじめ 〜そしてkeepalive fetchへ〜 / Beacon API The Basics
edwardkenfox
0
1.1k
Other Decks in Technology
See All in Technology
Claude Code に プロジェクト管理やらせたみた
unson
6
4.6k
赤煉瓦倉庫勉強会「Databricksを選んだ理由と、絶賛真っ只中のデータ基盤移行体験記」
ivry_presentationmaterials
2
380
DatabricksにOLTPデータベース『Lakebase』がやってきた!
inoutk
0
140
NewSQLや分散データベースを支えるRaftの仕組み - 仕組みを理解して知る得意不得意
hacomono
PRO
3
190
開発生産性を測る前にやるべきこと - 組織改善の実践 / Before Measuring Dev Productivity
kaonavi
14
6.5k
[ JAWS-UG千葉支部 x 彩の国埼玉支部 ]ムダ遣い卒業!FinOpsで始めるAWSコスト最適化の第一歩
sh_fk2
2
140
いつの間にか入れ替わってる!?新しいAWS Security Hubとは?
cmusudakeisuke
0
140
Rethinking Incident Response: Context-Aware AI in Practice
rrreeeyyy
1
130
American airlines ®️ USA Contact Numbers: Complete 2025 Support Guide
airhelpsupport
0
390
Reach American Airlines®️ Instantly: 19 Calling Methods for Fast Support in the USA
flyamerican
1
180
QuickSight SPICE の効果的な運用戦略~S3 + Athena 構成での実践ノウハウ~/quicksight-spice-s3-athena-best-practices
emiki
0
130
fukabori.fm 出張版: 売上高617億円と高稼働率を陰で支えた社内ツール開発のあれこれ話 / 20250704 Yoshimasa Iwase & Tomoo Morikawa
shift_evolve
PRO
2
8.1k
Featured
See All Featured
Visualization
eitanlees
146
16k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
20k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.9k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
2.9k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
It's Worth the Effort
3n
185
28k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Mobile First: as difficult as doing things right
swwweet
223
9.7k
How to Ace a Technical Interview
jacobian
278
23k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
281
13k
Transcript
ViewModelσβΠϯ ύλʔϯͷເΛݟΔ͔ EDWARD FOX @Meguro.es 2016/10/13
Edward Fox - Developer @ Repro Inc. - RoR, JavaScript,
AWS - Vue.js 2.0, WebAssembly
repro.io ϞόΠϧΞϓϦ͚ ϚʔέςΟϯάπʔϧ
ϑϩϯτΤϯυʢVue.jsʣ ͱ όοΫΤϯυʢRailsʣ ͷ࣮ͬͯ·͢
ࠓ͢͜ͱ ϑϩϯτΛ։ൃ͍ͯ͠ΔதͰ ߟ͑ͨViewModelͷઃܭ ʹ͍ͭͯ
ࠓ͞ͳ͍͜ͱ - ಛఆͷϥΠϒϥϦͷ ࣮ڍಈ - αϯϓϧίʔυ θϩ
σβύλྑ͍
- ͷׂ - Մಡੑ - ڞ௨ͷޠኮΛఏڙ
ϑϩϯτͷϑϨʔϜϫʔΫ ϥΠϒϥϦʹύλʔϯ ͷద༻͕ଟ͘ݟΒΕΔ
1. jQuery େ͖ͳFacadeύλʔϯ
None
2. MVVMϑϨʔϜϫʔΫ Observerύλʔϯ (Pub-Subύλʔϯ)
None
όοΫΤϯυͷ࣮Λ ݟΔͱɺ༷ʑͳύλʔϯ͕ ద༻͞Ε͍ͯΔ
ϞσϧʗΫϥεɺςʔϒϧ ߏͱͳΔ͘߹கͨ͠ ϑϩϯτઃܭʹ͍ͨ͠
ߴ·ΔViewModel ίϯϙʔωϯτͷ σβύλద༻ͷػӡ
ͬͯΈͨ ը૾͖ͭϝοηʔδ ࡞ը໘
None
- ϝοηʔδͷछྨ͕બ Δ - ϓϨϏϡʔͷOS͕Γ ସ͑ΒΕΔ - ϓϨϏϡʔͷॎԣදࣔ ͕Γସ͑ΒΕΔ
1ͭ1ͭͷίϯϙʔωϯτ Λখ͘͢͞ΔͨΊʹ ׂͯ͢
༩͑ΒΕͨೖྗΛݩʹ ҟͳΔVueίϯϙʔωϯτ Λੜ͢Δ FactoryύλʔϯͬΆ͍ ࣮
None
݁Ռ
Πϕϯτࠈ
͞·͟·ͳίϯϙʔωϯτ ʹঢ়ଶ͕·͕ͨΓɺ Πϕϯτ͕ແடংʹ ඈͼ߹͏
ཁ݅ͷมߋʹ ͍͍͚ͭͯͳ͍੬͍࡞Γ
ViewModelͷσʔλ × UI্ͷૢ࡞ʹجͮ͘ঢ়ଶ × ίϯϙʔωϯτؒͷΠϕϯτ
ෳࡶੑֻ͚ࢉʹͳΔ
ViewModelʹ ద͍ͯ͠Δύλʔϯͱ ͋·Γద͞ͳ͍ύλʔϯ ͕͋Δؾ͕ͯ͘͠Δ
͋·Γద͞ͳ͍ = ෳࡶੑͱϝϯςφϯεੑ͕ Γ߹Θͳ͍
(ͪΖΜέʔεόΠέʔε)
A. ద͍ͯ͠Δύλʔϯ
- Observer - State - Messenger ͳͲ
= ৼΔ͍ʹجͮ͘ ύλʔϯ
͋·Γద͞ͳ͍ύλʔϯ
- Factory / AbstractFactory - Builder ͳͲ
= ΦϒδΣΫτͷੜʹ جͮ͘ύλʔϯ
০తͳݟͨଐੑɺ ࡉ͔͍ৼΔ͍͕มΘΔ ͜ͱ͋ͬͯɺͦͷ ΠϯλʔϑΣʔεΛ௨ͯ͠ Ϣʔβʔ͕࣮ݱ͍ͨ͜͠ͱ େ͖͘มΘΒͳ͍
ΠϯλʔϑΣʔε ͷཻͰViewModelΛׂ ͨ͠ΓɺৼΔ͍ʹ ج͍ͨύλʔϯΛద༻͢Δ
࠷ۙͷέʔε Ϣʔβʔநग़ϑΟϧλʔ ػೳͷ࣮
None
None
None
݁Ռ
- ෳࡶੑݸผͷ ίϯϙʔωϯτʹดͨ͡ - ཁ݅ͷมߋʹॊೈ ʹͳͬͨ
σϝϦοτ ݸʑͷίϯϙʔωϯτ͕ ϑΝοτʹ
·ͱΊ
ϑϩϯτͷઃܭʹ͓͍ͯɺ ViewModelͷׂ୯Ґͱ ద༻͢ΔύλʔϯͷؔΛ Α͘ߟ͑Δ
ΠϯλʔϑΣʔε ৼΔ͍ʹجཻͮ͘ Ͱߟ͑Δ
ࠓޙ
fluxΞʔΩςΫνϟͱ ΦϒδΣΫτࢦͷ ϓϥΫςΟεʹ͍ͭͯ ߟ͍͑ͨ
Thank you!