Taking the Hype out of Hypermedia
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Taking the Hype out of Hypermedia

on

  • 624 views

Slides for my talk @ RubyFuza 2012

Slides for my talk @ RubyFuza 2012

Statistics

Views

Total Views
624
Views on SlideShare
621
Embed Views
3

Actions

Likes
0
Downloads
1
Comments
0

2 Embeds 3

https://twitter.com 2
https://si0.twimg.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Taking the Hype out of Hypermedia Presentation Transcript

  • 1. TAKING THE HYPE OUT OF HYPERMEDIAryan.lemmer@factor10.com // @ryanlemmer // GMT+2
  • 2. BUILDING UI
  • 3. TEMPLATE DRIVEN
  • 4. TEMPLATE DRIVEN<table> <tr> <td> <%= @cart.total %> </td> ... </tr></table>
  • 5. DATA + TEMPLATE DRIVEN
  • 6. DATA + TEMPLATE DRIVEN{ total: 987, discount: 10, ...}
  • 7. DATA + TEMPLATE DRIVEN AJAX GET /cart/1{ total: 987, discount: 10, ...}
  • 8. CONSISTENCY
  • 9. CONSISTENCY
  • 10. CONSISTENCY
  • 11. CONSISTENCY
  • 12. (LACK OF) CONSISTENCY ... MAKES TESTABILITY TOUGH
  • 13. TESTABILITYto test, you need a (nice) handle on the situation
  • 14. TESTABILITYto test, you need a (nice) handle on the situation# capybarait "signs me in" do within("#session") do fill_in Login, :with => boo@hoo.com fill_in Password, :with => secrat(sic) end click_link Sign inend
  • 15. INTERACTIONS
  • 16. INTERACTIONS
  • 17. INTERACTIONS
  • 18. INTERACTIONS
  • 19. IMPLICIT INTERACTIONS
  • 20. IMPLICIT INTERACTIONS def update_item_qty @item = @cart.items.find(params[:id]) if @item.update_attributes(:quantity => params[:qty]) redirect_to(@item) else render "edit" end end
  • 21. LAY OF THE LAND
  • 22. LAY OF THE LAND
  • 23. LAY OF THE LAND
  • 24. LAY OF THE LAND
  • 25. HYPERMEDIA DRIVEN
  • 26. HYPERMEDIA DRIVEN{ data: { total: 987, discount: 10, ... }, links: { {rel: “checkout” uri: “...”}}
  • 27. HYPERMEDIA DRIVEN{ after /checkout data: { total: 987, discount: 10, ... }, { links: { data: { {rel: “checkout” total: 987, uri: “...”} discount: 10,} ... }, links: {} }
  • 28. HYPERMEDIA DSL
  • 29. HYPERMEDIA DSL GET /cart/12312312
  • 30. HYPERMEDIA DSL GET /cart/12312312 POST /cart/12312312
  • 31. HYPERMEDIA
  • 32. HYPERMEDIA
  • 33. HYPERMEDIAonly for “open” carts
  • 34. HYPERMEDIA+STATEMACHINE
  • 35. HYPERMEDIA+STATEMACHINE NEXT STEP ??
  • 36. HYPERMEDIA+STATEMACHINE resource state machine NEXT STEP ??
  • 37. HYPERMEDIA+STATEMACHINE resource state machine only checkout if cart is “open” NEXT STEP ??
  • 38. EXPLICIT INTERACTIONS
  • 39. EXPLICIT INTERACTIONS SERVER SIDE INTERACTION LAYER
  • 40. EXPLICIT INTERACTIONS SERVER SIDEHATEOAS INTERACTION LAYER
  • 41. INTERACTION LAYER
  • 42. INTERACTION LAYER HYPERMEDIA “FLOW” “STRUCTURE”
  • 43. AND CONSISTENCY?
  • 44. AND CONSISTENCY? remove then RELOAD
  • 45. AND CONSISTENCY? remove then RELOAD
  • 46. ARCHITECTURE
  • 47. ARCHITECTURE
  • 48. WHAT’S NEXT?* Smart Hypermedia clients* Hypermedia Types => (HTML Forms, ATOM, ...)* machine-to-machine API’s => dynamic, executable
  • 49. THANKS aslam khan andreas brinklennart ohlsson @factor10