BEAR.Sunday.meetup #0

1,963 views

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,963
On SlideShare
0
From Embeds
0
Number of Embeds
450
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

BEAR.Sunday.meetup #0

  1. 1. meetup #0 @koriym19 July 2012, Tokyo
  2. 2. Framework ?
  3. 3. OOPObject Oriented Programing
  4. 4. 2 OOPs
  5. 5. オブジェクト指向プログラミングとは相互にメッセージ を送りあうオブジェクト の集まりとしてプログラムを構成する技法である。 wikipedia -オブジェクト指向プログラミング
  6. 6. カプセル化 (振る舞いの隠蔽とデータ隠蔽)インヘリタンス (継承)ポリモフィズム (多態性、多相性)ダイナミックバインディング (動的束縛) wikipedia -オブジェクト指向プログラミング
  7. 7. ???
  8. 8. Alan Kay (1940 -)
  9. 9. Bjarne Stroustrup (1950 -) ビャーネ・ ストロヴストルップ
  10. 10. メッセージング のオブジェクト指向私が考えるOOPはメッセージング、状態処理のローカルでの保有・保護・隠蔽、そして全ての物に対する強力な遅延束縛、これだけだ。
  11. 11. ユーザー定義型 のオブジェクト指向1)カプセル化 2)継承 3)多態性OOPの再定義メッセージよりクラス winplusの日記
  12. 12. データ構造とオブジェクト指向
  13. 13. Code Data Structured よくある理解CodeData Object Oriented
  14. 14. Tell, Don’t ask.Procedural code gets information then makes decisions. Object-oriented code tells objects to do things. — Alec Sharp
  15. 15. Tell Logic Logic Object Data Data
  16. 16. Ask DataLogic Object DataLogic
  17. 17. 手続き型プログラミングとオブジェクト指向プログラミングそれぞれ別のパラダイムマルチパラダイム言語 (C++, PHP)一方が得意な事は一方が不得意= 非対称性
  18. 18. Dont ask, dont tell (DADT) たまにある誤解 OOP関係ないです
  19. 19. /OOP
  20. 20. MVC ?
  21. 21. MVCMVC MVC ? MvcMVC MV C
  22. 22. MVC is just a way ofseparating concerns from each other,not an "application architecture”
  23. 23. Web MVC ?
  24. 24. Request:Response Router /Dispatcher ControllerModel View
  25. 25. Router /Dispatcher Controller methodinvocation Data DataModel
  26. 26. Router /Dispatcherontroller View Model Data
  27. 27. Tell ? or Ask ?
  28. 28. Let’s see again.
  29. 29. Request:Response Router /Dispatcher ControllerModel View
  30. 30. Request:Response Router /Dispatcher Controller App Logic Data DataModel Domain View View Logic Logic
  31. 31. Tell ? or Ask ?
  32. 32. Then, a resource.
  33. 33. Static HTML
  34. 34. Request:ResponseStatic HTML
  35. 35. Request:Response アドレス可能性(Addressability) ステートレス性Static HTML(Statelessness) 接続性(Connectedness) 統一インターフェイス(Uniform Interface)
  36. 36. BEAR.Sunday
  37. 37. Request:ResponseUI Resource (view)
  38. 38. UI Request:Response Resource (view)Resource Resource (view) (view)
  39. 39. UI Request:Response HTML Page Resource (html view) Application Resource (partial html view)
  40. 40. UI Request:Response API App Resource (JSON view) App Resource
  41. 41. Router /Dispatcher Controller methodinvocation Data DataModel
  42. 42. Page Res VERB + URI Resource ObjectApp Res
  43. 43. Request Responseget app://self/news (Resource Object) Resource
  44. 44. Public Properties
  45. 45. “Public props” Code Headers Body View Links
  46. 46. resource ≠ object ?
  47. 47. Request Interface
  48. 48. Headers Get PostBody Put Delete Links
  49. 49. State to Representation (Resource Renderer)
  50. 50. BodyRenderer View Li
  51. 51. Template Engine ?
  52. 52. Body@Inject Template Engine Renderer View Li
  53. 53. Request Links
  54. 54. Linksrel rel URI
  55. 55. rel rel “Friend”“Profile” Linked Resource
  56. 56. Resource Resource REL REL Resou REL REL REL Resource Resource
  57. 57. Resource as API
  58. 58. MobileDB ROA URI Resource URI as WebKVS API URI Future Future X DB
  59. 59. BecauseEverything isAResource.

×