View
6.605
Download
3
Embed Size (px)
DESCRIPTION
Ruby Sapporo Night vol.14 共演者のスライドはこちら: http://d.hatena.ne.jp/tricknotes/20120225/p1
Citation preview
しまだ こうじSHIMADA Koji
日本Rubyの会Ruby札幌
Next Generation Web Application Architecture.
2012-02-21 Ruby Sapporo Night vol.14アップルストア札幌
リッチクライアント時代のWebアプリケーションアーキテクチャパターンについて考える
2012年2月23日木曜日
“...はるかな彼方の昔、ある場所で、何もなく無菌状態の空間を漂っていた、でたらめに集まった原子の小さな集合に、それは深刻な外傷を与えた。そして、異常な、とてもありそうもないパターンで原子たちを離れないように結びつけてしまった。このようなパターンは自分自身をコピーするということを早いうちに覚えてしまい(これはパターンが非凡なものであることの一面を示している) 、パターンが漂うすべての惑星で、塊状の災難が引き起こされ続けた。このようにして宇宙に生命が誕生したのである。
『銀河ヒッチハイク・ガイド』
2012年2月23日木曜日
しまだ こうじ島田 浩二
Photo by tmaeda
2012年2月23日木曜日
日本Rubyの会2012年2月23日木曜日
一般社団法人LOCAL
2012年2月23日木曜日
2012年2月23日木曜日
2012年2月23日木曜日
2012年2月23日木曜日
2012年2月23日木曜日
2012年2月23日木曜日
2012年2月23日木曜日
よろしくお願いします
2012年2月23日木曜日
しまだ こうじSHIMADA Koji
日本Rubyの会Ruby札幌
Next Generation Web Application Architecture.
2012-02-21 Ruby Sapporo Night vol.14アップルストア札幌
リッチクライアント時代のWebアプリケーションアーキテクチャパターンについて考える
2012年2月23日木曜日
お品書き✓ クライアントMVCって何だろう✓ もういちどMVC✓ MVC系のパターンの系譜について✓ もういちどクライアントMVC
2012年2月23日木曜日
2012年2月23日木曜日
Backbone.js gives structure to web applications by
providing models with key-value binding and
custom events, collections with a rich API of
enumerable functions, views with declarative
event handling, and connects it all to your existing
API over a RESTful JSON interface.
2012年2月23日木曜日
Demohttps://github.com/snoozer05/backbone-tiny-example
2012年2月23日木曜日
クライアントMVC
2012年2月23日木曜日
Martin Fowler said
photo by pragdave2012年2月23日木曜日
“MVCはさまざまな解釈をされてしまっているにも関わらず、それら全てが ‘MVC’という名前で記述されている。もしそれで混乱しないようなら、あなたも伝言ゲームによるMVCの誤解の犠牲者の可能性がある。
http://martinfowler.com/eaaDev/uiArchs.html2012年2月23日木曜日
現在のWebアプリケーション開発でよく耳にするMVC
http://www.flickr.com/photos/indigoskies/6523275513/
2012年2月23日木曜日
http://www.flickr.com/photos/indigoskies/6523275513/
MVC Model 2“当時”のWebアプリケーションにMVCアーキテクチャを当てはめたもの
2012年2月23日木曜日
MVCのオリジナルではない
2012年2月23日木曜日
もういちどMVC
2012年2月23日木曜日
http://www.smalltalk-users.jp/Home/gao-zhi/dai30kaismalltalkbenkyoukai
30 Smalltalk
MVC
2011 3 30
2012年2月23日木曜日
http://www.smalltalk-users.jp/Home/gao-zhi/dai30kaismalltalkbenkyoukai
MVC• Model-View-Controller• XEROX PARC LRG Trygve Mikkjel Heyerdahl
Reenskaug 1978-1979– MODELS - VIEWS – CONTROLLERS
• http://d.hatena.ne.jp/digitalsoul/20100913/1284330448– DynaBook
•••
2012年2月23日木曜日
http://www.smalltalk-users.jp/Home/gao-zhi/dai30kaismalltalkbenkyoukai
Model-View-Controller
•• 1987• (FXIS)
• 3• 1988 OJT
2012年2月23日木曜日
http://www.jac-net.com/~tarzan/smalltalkers/mvc/mvc.html2012年2月23日木曜日
http://www.smalltalk-users.jp/Home/gao-zhi/dai30kaismalltalkbenkyoukai
Model-View-Controller
• MVC– Smalltalk–
••
•
2012年2月23日木曜日
http://www.smalltalk-users.jp/Home/gao-zhi/dai30kaismalltalkbenkyoukai2012年2月23日木曜日
http://www.smalltalk-users.jp/Home/gao-zhi/dai30kaismalltalkbenkyoukai
MVC
• MVC• MVC• MVC
2012年2月23日木曜日
http://www.smalltalk-users.jp/Home/gao-zhi/dai30kaismalltalkbenkyoukai
MVC
•
•
••••
2012年2月23日木曜日
MVC••
– changed:
– update:
––
••
http://www.smalltalk-users.jp/Home/gao-zhi/dai30kaismalltalkbenkyoukai2012年2月23日木曜日
http://www.smalltalk-users.jp/Home/gao-zhi/dai30kaismalltalkbenkyoukai
MVC• (VC)
• M VC– ( )
( )• on:aspect:menu:•
•
2012年2月23日木曜日
Martin Fowler said
photo by pragdave2012年2月23日木曜日
“率直に言って、古典的なMVCは今のリッチクライアントに対してはあまり用をなしません。
http://martinfowler.com/eaaDev/uiArchs.html2012年2月23日木曜日
対話型システムのMVC系アーキテクチャの系譜
2012年2月23日木曜日
MVC系アーキテクチャパターン
✓ Presentation Model✓ Application Model✓ MVVM✓ MVP
2012年2月23日木曜日
MVC系アーキテクチャパターン
✓ Presentation Model✓ Application Model✓ MVVM✓ MVP
2012年2月23日木曜日
Presentation Model
✓ ドメインロジックとプレゼンテーションロジックをモデルの層で分離
✓ View は Model の手前に置かれた Presentation Model を監視する
2012年2月23日木曜日
Presentation Model
View
Model
Controller
Presentation Model監視
2012年2月23日木曜日
古典的なMVCが持っていた問題を
解決しようとしたもの
2012年2月23日木曜日
古典的なMVCが持っていた問題
✓ システムに存在するロジックはビジネスロジックだけじゃない
✓ プレゼンテーションロジックの置き場が問題
✓ MVC では View か Model におくしか無い
2012年2月23日木曜日
Presentation Model
View
Model
Controller
Presentation Model監視
2012年2月23日木曜日
Presentation Model
✓ Application Model✓ Visual Works でのアプローチ
✓ Model-View ViewModel✓ WPF でのアプローチ
2012年2月23日木曜日
MVC系アーキテクチャパターン
✓ Presentation Model✓ Application Model✓ MVVM✓ MVP
2012年2月23日木曜日
Model View Presenter
✓ 入力制御はOSさんがやってくれるのでコントローラさんが退場
✓ 直接 View 側を操作したいプレゼンテーションロジックもあった
✓ ロジックを持つ側で直接いじれる人が必要
2012年2月23日木曜日
Model View Presenter
View(V/C)
Model
Presenter
監視
操作も可
2012年2月23日木曜日
ポイント
2012年2月23日木曜日
Controller とPresenter は
生い立ちの異なるもの
2012年2月23日木曜日
整理
2012年2月23日木曜日
MVC系アーキテクチャパターン
✓ Presentation Model✓ Application Model✓ MVVM✓ MVP
2012年2月23日木曜日
ドメインロジック以外のロジックをどこに置いて、それと他のコンポーネントをどううまく協調させるかの実践の歴史
MVC系アーキテクチャパターン
2012年2月23日木曜日
最近の JavaScript ライブラリ
✓ Backbone.js✓ Knockout.js✓ JavaScriptMVC✓ Batman.js
2012年2月23日木曜日
Rails の世界でも
✓ Cells✓ Draper✓ ...
2012年2月23日木曜日
Web アプリケーションの世界にも、リッチクライアントと大規模化によってプレゼンテーションロジック問題との戦いが本格化しつつある
2012年2月23日木曜日
Martin Fowler said
photo by pragdave2012年2月23日木曜日
“MVCはさまざまな解釈をされてしまっているにも関わらず、それら全てが ‘MVC‘という名前で記述されている。もしそれで混乱しないようなら、あなたも伝言ゲームによるMVCの誤解の犠牲者の可能性がある。
http://martinfowler.com/eaaDev/uiArchs.html2012年2月23日木曜日
クライアントMVC
2012年2月23日木曜日
http://www.flickr.com/photos/indigoskies/6523275513/
MVC Model 2“当時”のWebアプリケーションにMVCアーキテクチャを当てはめたもの
2012年2月23日木曜日
http://www.flickr.com/photos/indigoskies/6523275513/
MVC Model 2“当時”のWebアプリケーションにMVCアーキテクチャを当てはめたもの
ではなく
2012年2月23日木曜日
MVC系アーキテクチャパターン
✓ Presentation Model✓ Application Model✓ MVVM✓ MVP
2012年2月23日木曜日
まだ(僕が)しっくりきていないこと
✓ プレゼンテーションロジックにもドメインロジックにもうまくおけないようなロジックもあるような...
✓ クライアント側に何を置いてサーバ側に何を置いてそれらがどう協調すべきか
2012年2月23日木曜日
Is this answer?
https://gist.github.com/13621102012年2月23日木曜日
先人の知恵に学びつつさらなる実践と議論が必要そう
2012年2月23日木曜日
続く
2012年2月23日木曜日
その他の情報へのポインタ
✓ WPF 向けのモデル - ビュー - プレゼンター - ビューモデル設計パターンhttp://msdn.microsoft.com/ja-jp/magazine/hh580734.aspx
✓ 開発者が知っておくべき、6つのUIアーキテクチャ・パターンhttp://www.atmarkit.co.jp/fdotnet/chushin/greatblogentry_10/greatblogentry_10_01.html
2012年2月23日木曜日
しまだ こうじSHIMADA Koji
日本Rubyの会Ruby札幌
Next Generation Web Application Architecture.
2012-02-21 Ruby Sapporo Night vol.14アップルストア札幌
リッチクライアント時代のWebアプリケーションアーキテクチャパターンについて考える
2012年2月23日木曜日
ご清聴ありがとうございました
2012年2月23日木曜日
Ruby Sapporo Nightvol.142012-02-23(Thu) Apple Store, Sapporo
2012年2月23日木曜日