Next Generation Web Application Architecture

Preview:

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日木曜日