Worldofresources

54
Discovering a world of Resources on Rails David Heinemeier Hansson

description

 

Transcript of Worldofresources

Page 1: Worldofresources

Discovering a world of

Resources on RailsDavid Heinemeier Hansson

Page 2: Worldofresources

Create Read Update Delete

Page 3: Worldofresources

What they told you...やつらが言ってたのは...

Simplistic 単純すぎる

Unfulfilling 物足りない

Unworthy ふさわしくない

Shameful これはひどい

Page 4: Worldofresources

They were wrongやつらはまちがっていた

Page 5: Worldofresources

How I learned to stop worrying and love the CRUD

私は如何にして心配するのを止めて,CRUDを愛するようになったか?

Page 6: Worldofresources

find create update destroy

SELECT INSERT UPDATE DELETE

Page 7: Worldofresources

GET POST PUT DELETE

find create update destroy

SELECT INSERT UPDATE DELETE

Page 8: Worldofresources

POST /people/createGET /people/show/1POST /people/update/1POST /people/destroy/1

Page 9: Worldofresources

POST /peopleGET /people/1PUT /people/1DELETE /people/1

Page 10: Worldofresources
Page 11: Worldofresources
Page 12: Worldofresources
Page 13: Worldofresources
Page 14: Worldofresources
Page 15: Worldofresources
Page 16: Worldofresources

Why bother?これでよくね?

Consistency 一貫性

Simplicity 単純さ

Discoverability 見つけやすさ

Page 17: Worldofresources

Constraints are liberating

制約が自由をもたらす

(a straight jacket for your mind)

(あなたの思考の拘束衣)

Page 18: Worldofresources
Page 19: Worldofresources
Page 20: Worldofresources
Page 21: Worldofresources
Page 22: Worldofresources
Page 23: Worldofresources
Page 24: Worldofresources

Model beyond “things”「物」じゃないモデル

Relations (membership, subscription)関連(帰属関係、サブスクリプション)

Events (closure, change)イベント(終了、変更)

States (reviewed, accepted)状態(確認済み、受理済み)

Page 25: Worldofresources
Page 26: Worldofresources

But!だがしかし!

Page 27: Worldofresources

CRUD is not a goal, it’s an aspiration,

a design technique

CRUDはゴールではなく ゴールを目指す気持ちであり

設計の技法なのである

Page 28: Worldofresources
Page 29: Worldofresources

POST /kases/1;close /identity;aspect

GET /kases/1;edit /identity;view

Page 30: Worldofresources
Page 31: Worldofresources
Page 32: Worldofresources

And there is more!さらに!

Page 33: Worldofresources

Answering to mime typesmime type に応答する

One controller for many clientsいろいろなクライアントをさばく1つのコントローラ

One action returning different results複数の結果を返す1つのアクション

Flexible input model柔軟な入力モデル

Page 34: Worldofresources
Page 35: Worldofresources
Page 36: Worldofresources
Page 37: Worldofresources
Page 38: Worldofresources
Page 39: Worldofresources
Page 40: Worldofresources
Page 41: Worldofresources
Page 42: Worldofresources
Page 43: Worldofresources
Page 44: Worldofresources
Page 45: Worldofresources
Page 46: Worldofresources
Page 47: Worldofresources

One more thingあとひとつ

Page 48: Worldofresources

Active Resource

Page 49: Worldofresources
Page 50: Worldofresources
Page 51: Worldofresources
Page 52: Worldofresources
Page 53: Worldofresources