Rubykaigi2008: REST 信者から見た Ruby と Rails
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Rubykaigi2008: REST 信者から見た Ruby と Rails

  • 6,500 views
Uploaded on

 

More 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,500
On Slideshare
6,481
From Embeds
19
Number of Embeds
3

Actions

Shares
Downloads
20
Comments
0
Likes
3

Embeds 19

https://twitter.com 12
http://www.slideee.com 5
http://www.slideshare.net 2

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. REST 信者から見た Ruby on Rails 2.0 山本陽平 YAMAMOTO Yohei
  • 2. REST 信者から見た Ruby on Rails 2.1 山本陽平 YAMAMOTO Yohei
  • 3. REST 信者から見た Ruby and Rails 山本陽平 YAMAMOTO Yohei
  • 4. 自己紹介 Who am I • ソフトウェアエンジニア – Software Engineer • XML 野郎 – XML guy • REST 信者 – RESTian • ルビー初心者 – JavaからRubyへ – Ruby beginner – from Java to Ruby
  • 5. 自慢 I’m very proud for…
  • 6. Ruby スポン サーな会社で 働いています I’m working in Ruby sponsor company
  • 7. 今日の話題 Today’s theme is…
  • 8. REST と Ruby と Rails について About REST and Ruby and Rails
  • 9. まずは… First…
  • 10. REST と Ruby について About REST and Ruby
  • 11. REST と Ruby は仲良し REST and Ruby are good friends
  • 12. ruby-dev におけるRESTの議論 REST discussion in ruby-dev
  • 13. REST と Ruby は仲良し REST and Ruby are good friends
  • 14. REST と Rails も仲良し REST and Ruby are also friends
  • 15. REST と Rails は仲良し REST and Rails are good friends
  • 16. REST Representational State Transfer
  • 17. REST • Web のアーキテクチャスタイル – Web Architectural style • 制約の集合 – Set of constrains – ULCODC$SS
  • 18. 抽象化レベル Abstraction Level • Implementaion – Apache, Rails, Firefox, bot • Architecture – User Agent, Server, HTTP, URI, HTML • Architectural Style – Constrains, Styles
  • 19. リソース指向アーキテクチャ Resource Oriented Architecture
  • 20. ROA の四つの構成要素 Four features of the ROA • (A) アドレス可能性 – Addressability • (S) ステートレス性 – Statelessness • (C) 接続性 – Connectedness • (U) 統一インターフェース – A Uniform Interface
  • 21. A > C > U >>>>>>>>>S アドレス可能性>接続性>統一インターフェース>>>>>>>>>>ステートレス性 Addressability > Connectedness > A Uniform Interface>>>>>>>>> Statelessness
  • 22. ROA の四つの構成要素 Four features of the ROA • (A) アドレス可能性 – Addressability • (S) ステートレス性 – Statelessness • (C) 接続性 – Connectedness • (U) 統一インターフェース – A Uniform Interface
  • 23. アドレス可能性 Addressability
  • 24. アプリケーションがそのデータ セットの重要な部分をリソースと して公開する場合、そのアプリ ケーションはアドレス可能である。 An application is addressable if it exposes the interesting aspects of the data set as resources.
  • 25. リソースは URI を通じて提供される ため、アドレス可能なアプリケーショ ンは提供可能な情報ごとにURI を公 開する。 Since resources are exposed through URIs, an addressable application exposes a URI for every piece of information it might conceivably serve.
  • 26. リソース/URI 駆動開発 Resource/URI driven development
  • 27. URI の設計 ↓ URI の実装 Design URI → Implement URI
  • 28. URIの設計 URI design
  • 29. Blog entries list resource /entries (GET/POST) Blog entry resource /entries/{entry_id} (GET/PUT/DELETE)
  • 30. URIの実装 URI implementation
  • 31. map.resources :entries
  • 32. シンプルだけど… It’s simple, but…
  • 33. Rails のルーティングは 素晴らしいが、コードの 構造に依存しがち Routing of Rails is good, but code structure dependent
  • 34. URIは設計目標であって 実装結果ではない URIs are design goal, not implementation result
  • 35. Restlet router.attach(“/entries”, EntryListResource.class); router.attach(“/entries/{id}”, EntryResource.class); Django urlpatterns = patterns( (r’^entries/$’, entry_list), (r’^entries/([¥w-]+)/$’, entry_detail), )
  • 36. 接続性 Connectedness
  • 37. 現在のページ == アプリケーション状態 Current Page = Application State
  • 38. ハイパーメディアを設計 == アプリケーションを設計 Design hypermedia == design application
  • 39. ハイパーメディアを設計 == リソースとリンクを設計 Design hypermedia == design resources and links
  • 40. リンクの設計 Link design
  • 41. リンクの実装 Link implementation
  • 42. url_for link_to
  • 43. シンプルだけど… It’s simple, but…
  • 44. リンクの意味を意識で きればもっといい Semantics of a link is important
  • 45. 続きは WEB+DB PRESS Vol. 45 で
  • 46. まとめ Conclusion
  • 47. 実際のところ Rails は RESTful である Actually, Rails is RESTful
  • 48. アドレス可能性と 接続性でよりよい設計を design by A better addressability and connectedness