• Like
Next Generation Web Application Architecture
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Next Generation Web Application Architecture

  • 6,193 views
Published

Ruby Sapporo Night vol.14 …

Ruby Sapporo Night vol.14
共演者のスライドはこちら: http://d.hatena.ne.jp/tricknotes/20120225/p1

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
6,193
On SlideShare
0
From Embeds
0
Number of Embeds
7

Actions

Shares
Downloads
34
Comments
0
Likes
17

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. リッチクライアント 時代のWebアプリケーション アーキテクチャ パターンについて考える  Next Generation Web Application Architecture. 2012-02-21 Ruby Sapporo Night vol.14 アップルストア札幌 日本Rubyの会 Ruby札幌 しまだ こうじ SHIMADA Koji2012年2月23日木曜日
  • 2. ...はるかな彼方の昔、ある場所で、何もなく無菌状態の空間 を漂っていた、でたらめに集まった原子の小さな集合に、そ れは深刻な外傷を与えた。そして、異常な、とてもありそう もないパターンで原子たちを離れないように結びつけてし まった。このようなパターンは自分自身をコピーするという ことを早いうちに覚えてしまい(これはパターンが非凡なもの であることの一面を示している) 、パターンが漂うすべての 惑星で、塊状の災難が引き起こされ続けた。このようにして 宇宙に生命が誕生したのである。 『銀河ヒッチハイク・ガイド』2012年2月23日木曜日
  • 3. しまだ こうじ 島田 浩二 Photo by tmaeda2012年2月23日木曜日
  • 4. 日本Rubyの会2012年2月23日木曜日
  • 5. 一般社団法人LOCAL2012年2月23日木曜日
  • 6. 2012年2月23日木曜日
  • 7. 2012年2月23日木曜日
  • 8. 2012年2月23日木曜日
  • 9. 2012年2月23日木曜日
  • 10. 2012年2月23日木曜日
  • 11. 2012年2月23日木曜日
  • 12. よろしく お願いします2012年2月23日木曜日
  • 13. リッチクライアント 時代のWebアプリケーション アーキテクチャ パターンについて考える  Next Generation Web Application Architecture. 2012-02-21 Ruby Sapporo Night vol.14 アップルストア札幌 日本Rubyの会 Ruby札幌 しまだ こうじ SHIMADA Koji2012年2月23日木曜日
  • 14. お品書き ✓ クライアントMVCって何だろう ✓ もういちどMVC ✓ MVC系のパターンの系譜について ✓ もういちどクライアントMVC2012年2月23日木曜日
  • 15. 2012年2月23日木曜日
  • 16. 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日木曜日
  • 17. Demo https://github.com/snoozer05/backbone-tiny-example2012年2月23日木曜日
  • 18. クライアントMVC2012年2月23日木曜日
  • 19. Martin Fowler said photo by pragdave2012年2月23日木曜日
  • 20. MVCはさまざまな解釈をされてしまっ ているにも関わらず、それら全てが MVC という名前で記述されている。 もしそれで混乱しないようなら、あな たも伝言ゲームによるMVCの誤解の犠 牲者の可能性がある。 http://martinfowler.com/eaaDev/uiArchs.html2012年2月23日木曜日
  • 21. 現在のWebアプリケーション 開発でよく耳にするMVC http://www.flickr.com/photos/indigoskies/6523275513/2012年2月23日木曜日
  • 22. MVC Model 2 当時 のWebアプリケーションに MVCアーキテクチャを当てはめたもの http://www.flickr.com/photos/indigoskies/6523275513/2012年2月23日木曜日
  • 23. MVCのオリジナル ではない2012年2月23日木曜日
  • 24. もういちどMVC2012年2月23日木曜日
  • 25. 30 Smalltalk MVC 2011 3 30 http://www.smalltalk-users.jp/Home/gao-zhi/dai30kaismalltalkbenkyoukai2012年2月23日木曜日
  • 26. 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 • • • http://www.smalltalk-users.jp/Home/gao-zhi/dai30kaismalltalkbenkyoukai2012年2月23日木曜日
  • 27. Model-View- Controller • • 1987 • (FXIS) • 3 • 1988 OJT http://www.smalltalk-users.jp/Home/gao-zhi/dai30kaismalltalkbenkyoukai2012年2月23日木曜日
  • 28. http://www.jac-net.com/~tarzan/smalltalkers/mvc/mvc.html2012年2月23日木曜日
  • 29. Model-View- Controller • MVC – Smalltalk – • • • http://www.smalltalk-users.jp/Home/gao-zhi/dai30kaismalltalkbenkyoukai2012年2月23日木曜日
  • 30. http://www.smalltalk-users.jp/Home/gao-zhi/dai30kaismalltalkbenkyoukai2012年2月23日木曜日
  • 31. MVC • MVC • MVC • MVC http://www.smalltalk-users.jp/Home/gao-zhi/dai30kaismalltalkbenkyoukai2012年2月23日木曜日
  • 32. MVC • • • • • • http://www.smalltalk-users.jp/Home/gao-zhi/dai30kaismalltalkbenkyoukai2012年2月23日木曜日
  • 33. MVC • • – changed: – update: – – • • http://www.smalltalk-users.jp/Home/gao-zhi/dai30kaismalltalkbenkyoukai2012年2月23日木曜日
  • 34. MVC • (VC) • M VC – ( ) ( ) • on:aspect:menu: • • http://www.smalltalk-users.jp/Home/gao-zhi/dai30kaismalltalkbenkyoukai2012年2月23日木曜日
  • 35. Martin Fowler said photo by pragdave2012年2月23日木曜日
  • 36. 率直に言って、古典的なMVCは 今のリッチクライアントに対しては あまり用をなしません。 http://martinfowler.com/eaaDev/uiArchs.html2012年2月23日木曜日
  • 37. 対話型システムのMVC系 アーキテクチャの系譜2012年2月23日木曜日
  • 38. MVC系アーキテクチャパターン ✓ Presentation Model ✓ Application Model ✓ MVVM ✓ MVP2012年2月23日木曜日
  • 39. MVC系アーキテクチャパターン ✓ Presentation Model ✓ Application Model ✓ MVVM ✓ MVP2012年2月23日木曜日
  • 40. Presentation Model ✓ ドメインロジックとプレゼンテー ションロジックをモデルの層で分離 ✓ View は Model の手前に置かれ た Presentation Model を監 視する2012年2月23日木曜日
  • 41. Presentation Model Controller Presentation View 監視 Model Model2012年2月23日木曜日
  • 42. 古典的なMVCが 持っていた問題を 解決しようとしたもの2012年2月23日木曜日
  • 43. 古典的なMVCが持っていた問題 ✓ システムに存在するロジックは ビジネスロジックだけじゃない ✓ プレゼンテーションロジックの 置き場が問題 ✓ MVC では View か Model におくしか無い2012年2月23日木曜日
  • 44. Presentation Model Controller Presentation View 監視 Model Model2012年2月23日木曜日
  • 45. Presentation Model ✓ Application Model ✓ Visual Works でのアプローチ ✓ Model-View ViewModel ✓ WPF でのアプローチ2012年2月23日木曜日
  • 46. MVC系アーキテクチャパターン ✓ Presentation Model ✓ Application Model ✓ MVVM ✓ MVP2012年2月23日木曜日
  • 47. Model View Presenter ✓ 入力制御はOSさんがやってくれる のでコントローラさんが退場 ✓ 直接 View 側を操作したいプレゼ ンテーションロジックもあった ✓ ロジックを持つ側で直接いじれる 人が必要2012年2月23日木曜日
  • 48. Model View Presenter View Presenter (V/C) 操作も可 監視 Model2012年2月23日木曜日
  • 49. ポイント2012年2月23日木曜日
  • 50. Controller と Presenter は 生い立ちの異なるもの2012年2月23日木曜日
  • 51. 整理2012年2月23日木曜日
  • 52. MVC系アーキテクチャパターン ✓ Presentation Model ✓ Application Model ✓ MVVM ✓ MVP2012年2月23日木曜日
  • 53. MVC系アーキテクチャパターン ドメインロジック以外のロジック をどこに置いて、それと他のコン ポーネントをどううまく協調させ るかの実践の歴史2012年2月23日木曜日
  • 54. 最近の JavaScript ライブラリ ✓ Backbone.js ✓ Knockout.js ✓ JavaScriptMVC ✓ Batman.js2012年2月23日木曜日
  • 55. Rails の世界でも ✓ Cells ✓ Draper ✓ ...2012年2月23日木曜日
  • 56. Web アプリケーションの 世界にも、リッチクライア ントと大規模化によってプ レゼンテーションロジック 問題との戦いが本格化しつ つある2012年2月23日木曜日
  • 57. Martin Fowler said photo by pragdave2012年2月23日木曜日
  • 58. MVCはさまざまな解釈をされてしまっ ているにも関わらず、それら全てが MVC という名前で記述されている。 もしそれで混乱しないようなら、あな たも伝言ゲームによるMVCの誤解の犠 牲者の可能性がある。 http://martinfowler.com/eaaDev/uiArchs.html2012年2月23日木曜日
  • 59. クライアントMVC2012年2月23日木曜日
  • 60. MVC Model 2 当時 のWebアプリケーションに MVCアーキテクチャを当てはめたもの http://www.flickr.com/photos/indigoskies/6523275513/2012年2月23日木曜日
  • 61. MVC Model 2 当時 のWebアプリケーションに MVCアーキテクチャを当てはめたもの ではなく http://www.flickr.com/photos/indigoskies/6523275513/2012年2月23日木曜日
  • 62. MVC系アーキテクチャパターン ✓ Presentation Model ✓ Application Model ✓ MVVM ✓ MVP2012年2月23日木曜日
  • 63. まだ(僕が)しっくりきていないこと ✓ プレゼンテーションロジックにもド メインロジックにもうまくおけない ようなロジックもあるような... ✓ クライアント側に何を置いてサーバ 側に何を置いてそれらがどう協調す べきか2012年2月23日木曜日
  • 64. Is this answer? https://gist.github.com/13621102012年2月23日木曜日
  • 65. 先人の知恵に学びつつ さらなる実践と議論が 必要そう2012年2月23日木曜日
  • 66. 続く2012年2月23日木曜日
  • 67. その他の情報へのポインタ ✓ WPF 向けのモデル - ビュー - プレゼン ター - ビューモデル設計パターン http://msdn.microsoft.com/ja-jp/magazine/hh580734.aspx ✓ 開発者が知っておくべき、6つのUIアー キテクチャ・パターン http://www.atmarkit.co.jp/fdotnet/chushin/greatblogentry_10/ greatblogentry_10_01.html2012年2月23日木曜日
  • 68. リッチクライアント 時代のWebアプリケーション アーキテクチャ パターンについて考える  Next Generation Web Application Architecture. 2012-02-21 Ruby Sapporo Night vol.14 アップルストア札幌 日本Rubyの会 Ruby札幌 しまだ こうじ SHIMADA Koji2012年2月23日木曜日
  • 69. ご清聴 ありがとう ございました2012年2月23日木曜日
  • 70. Ruby Sapporo Night 2012-02-23(Thu) Apple Store, Sapporo vol.142012年2月23日木曜日