Skip to content

Instantly share code, notes, and snippets.

@tkawa
Last active November 10, 2015 10:06
Show Gist options
  • Save tkawa/4df1404b886d50ff1aaa to your computer and use it in GitHub Desktop.
Save tkawa/4df1404b886d50ff1aaa to your computer and use it in GitHub Desktop.
RESTful#とは勉強会11

RESTful#とは勉強会11 2015.11.10

質問はTwitterへ #RESTudy をつけてどうぞ。

「Webを支える技術」第10章 HTML

重要な用語・概念

注意点

「第10章 HTML」はXHTML1.0/1.1をベースとして書かれていますが、現在の標準はHTML5ですので、細かい部分で違いがあります。

実体参照と文字参照 (p.158)

HTML5においては、p.159の5つ以外の文字実体参照(実体参照)、数値文字参照(文字参照)は使う必要がありません。UTF-8でそのまま記述しましょう。

ボディ (p.163)

HTML5においては、ブロックレベル要素、インライン要素という区別はなくなり、新しいコンテンツモデルとそのカテゴリが導入されています。フローコンテンツ、フレージングコンテンツ、などです。

例: div要素はフローコンテンツで、中にはフローコンテンツを含むことができる。
p要素はフローコンテンツで、中にはフレージングコンテンツを含むことができる。
span要素はフローコンテンツ・フレージングコンテンツで、中にはフレージングコンテンツを含むことができる。
a要素はフローコンテンツ・フレージングコンテンツ・インタラクティブコンテンツで、中に含むことのできるコンテンツは親要素を引き継ぐ(トランスペアレント)。ただしインタラクティブコンテンツは含むことができない。
参考: http://ascii.jp/elem/000/000/652/652795/

これによって、例えばa要素の中にdiv要素を入れるということがHTML5では可能になっています。

調べ方のヒント

ブラウザのデベロッパーツールを使いましょう。
Windows: F12Ctrl+Shift+i
Mac: command+option+i

HTMLソースコードを見たり、リクエスト/レスポンスを見て、HTTPのルールに沿っているかどうか、RESTfulかどうかを調べましょう。

REST復習の参考スライド

復習「RESTful Web アプリの設計レビューの話」

http://www.slideshare.net/t_wada/restful-web-design-review

スライドを読んで、感じたこと、疑問点などをグループで話し合いましょう。 スライド中の用語に関して理解が不安なときは「Webを支える技術」のページを振り返ってみましょう。

RESTfulアプリ設計のステップ

p.8

  1. 対象となるデータを認識する

多くの場合、先にRDBテーブル設計が必要になります。そうすると、まずテーブルとカラムが対象になります。

  1. 対象となるデータをリソースに分ける

ただし、リソースの粒度がテーブル単位とは限らないことに注意しましょう。

URLが無理な構造になっていないか

p.12

Tumblr の奇妙なURL

これは何が問題でしょうか?

URLが右にいくに従って自然な階層構造/サブセットになっているか

URLは「/」で区切られた階層構造。URLの末尾を削っていってもアクセスできるかどうかが目安です。

p.13

リソースとリソースの関係を表す第三のリソースを探す

これはRDBテーブル設計で交差テーブルを見つけるときにも重要です。

  • subscription (user <=> magazine)
  • belonging, membership (user <=> group)
  • friendship, relationship (user <=> user)
  • tagging (thing <=> tag)
  • categorization (thing <=> category)

もっと挙げてみましょう。

HTTPメソッドの選択

GET 重要。とても重要。

GETできないリソースを作ってしまったら何かがおかしいといえます。

議論

DOM Scripting の原則に従う

  • Progressive Enhancement
  • Graceful Degradation
  • Unobtrusive JavaScript

JavaScriptがないと全く使えないようにするのはなるべくやめましょう シングルページアプリケーションは本当に必要かをよく考える

初回発表時に出た議論メモ http://qiita.com/tkawa/items/bedc9dbcf9547d0df313

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment