Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

リソースモデリングパターンの提案 #sendagayarb

10,609 views

Published on

RailsにおけるRESTfulなURL設計勉強会
http://d.hatena.ne.jp/tkawa/20120726/p2

Published in: Technology
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

リソースモデリングパターンの提案 #sendagayarb

  1. 1. リソースモデリング パターンの提案 @tkawa2012.7.23 RailsにおけるRESTfulなURL設計勉強会 Sendagaya.rb #12
  2. 2. @tkawa 川村 徹 RESTとかRailsとか 書いてるブログhttp://d.hatena.ne.jp/tkawa/ うつの予防と回復 Web認知行動療法 U2plus http://u2plus.jp/
  3. 3. URL設計(リソース設計) いろんな選択肢がある• 例えば、URLの階層構造について、どれを選択す る? • /users , /user/{id} • /users/user/{id} • /users/{id} • /users/user-{id}• さらに、HTTPメソッドとの対応はどうする? くわしくは http://d.hatena.ne.jp/tkawa/20120103/p1
  4. 4. Railsだと Hoge::Application.routes.draw do   resources :users end• URLの構造も、HTTPメソッドとの対応もこ れだけで決まる• リソース設計の「パターン」を提供している• ベストプラクティス
  5. 5. 「リソースモデリングパターン」• どのパターンかを判断するだけで、既存の Good Practiceが適用できる• もっとあるはず!• 名前をつけて呼べるようにしたい• (できれば)Railsで簡単に書けるようにし たい
  6. 6. まず、リソースを分類してみた
  7. 7. リソース大分類• コレクションリソース• メンバーリソース• 単数(Singular, Singleton)リソース• 補助リソース• アルゴリズムリソース• 静的リソース• ルートリソース• その他…
  8. 8. コレクションリソース メンバーリソース /{name} /{name}/{id}• 同じ種類のデータのまとまり →コレクションリソース その中の個別のデータ →メンバーリソース• コレクション名に“/”でIDをつなげることで 階層構造とする
  9. 9. Collection & Member Resource パターン• Railsの “resources”• 2種類のリソースをまとめて、使用する メソッドを限定• コレクションリソースがFactoryとなる GET POST PUT DELETE /{name} index create - -/{name}/{id} show - update destroy
  10. 10. 単数(Singular, Singleton) リソース /{name}• ただ1つしかないリソース • あるリソースに対して1つしかない • セッションに対して1つしかない• /users/123/profile
  11. 11. Singular(Singleton) Resource パターン• Railsの “resource” GET POST PUT DELETE /{name} show create update destroy
  12. 12. 補助リソース /{name}/new /{name}/{id}/preview• 主にHTMLのUIのために必要となる、データ の中身には関係のないリソース• GETのみ(命名規則を考え直すべきでは? _new とか)
  13. 13. アルゴリズムリソース /search?q={query}/conversion?from=USD&to=JPY&amount=100 • クエリパラメータによって、何らかのア ルゴリズムを実行した結果のリソース • 基本的にGETのみ
  14. 14. 静的リソース• 画像とかJavaScriptとかCSSとか• Railsや、Webアプリケーションフレーム ワーク特有の分類かもしれない• GETのみ
  15. 15. ルートリソース /• 他のリソースへのナビゲーション的役割 (GETのみ)• もしくは、サービスの主となるリソース (コレクションリソースが多い)の別名
  16. 16. もう少し具体的なパターンを探してみた
  17. 17. Filtered Collection パターン /users?role=admin• コレクションリソース +アルゴリズムリソース• コレクションリソースから、クエリパラメー タの値を条件として絞り込む• meta_search (gem)などが実装
  18. 18. Filtered Collection パターン /users?page=2 /users?since_id=123• ページネーション• kaminari (gem)などが実装
  19. 19. Filtered Subresource パターン /users/admin• 汎用的なら、子リソースとしても表現できる• コレクションリソースの一種• IDと衝突注意(実はこれをすんなり resources で書く手段がないが、GETのみなのでいいのかも)
  20. 20. Multi-member Resource パターン /users/123,124 /users/123-133• メンバーリソースの派生形• 複数のメンバーリソースを一度に取 得、更新、削除するために提供
  21. 21. Partial Resource パターン /users/123/name,emailor /users/123?fields=name,email • リソースの部分取得、部分更新のため に一部の属性(フィールド)だけを提 供する
  22. 22. Transaction Resource パターンPOST /transactionsPUT /transactions/123PUT /transactions/123/committed• 主にCollection & Member Resource パ ターンを用いたトランザクションの実装• ウィザードなどにも適用可能
  23. 23. Session Resource パターン ログイン POST /sessionログアウト DELETE /session• 認証のセッション自体をリソースととらえ る(モデルではないリソースの典型例)• Railsの認証gemではすでに一般的 (Deviseや Sorcery, OmniAuthのドキュメント)
  24. 24. Private Resource(Namespace) パターン /my/{resource}• Singular Resource パターンの特別な場合• 「自分自身」を指す特別なリソース• 人によって違うリソースを指すことを 明示するため、名前空間を分ける
  25. 25. 意見ください• ほんとうに役立つか• これはパターンと言えるのか• だいぶ粒度がバラバラ• 名前の付け方(パターンは名前重要)• まとめてどこかに書きたい! 本?
  26. 26. • Collection & Member Resource パターン• Singular(Singleton) Resource パターン• Filtered Collection パターン• Filtered Subresource パターン• Multi-member Resource パターン• Partial Resource パターン• Transaction Resource パターン• Session Resource パターン• Private Resource (Namespace) パターン

×