Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Points of View

Points of View

at Object Design Rough Talks #1

https://gum.co/jspsc

Sho Kusano

April 25, 2014
Tweet

More Decks by Sho Kusano

Other Decks in Programming

Transcript

  1. Points of View
    @rosylilly

    View Slide

  2. What’s this?

    View Slide

  3. View Slide

  4. VS

    View Slide

  5. What’s this?

    View Slide

  6. View Slide

  7. View Slide

  8. wow!!

    View Slide

  9. What’s this?

    View Slide

  10. View Slide

  11. Points of View
    @rosylilly

    View Slide

  12. @rosylilly
    CTO / Magnet

    View Slide

  13. 1. Modeling

    View Slide

  14. If it walks like a duck
    and quacks like a duck,
    it must be a duck

    View Slide

  15. QUACK!!!!
    Duck?

    View Slide

  16. Duck
    Pigeon
    Border
    Coo Coo Coo Coo
    Quack Quack Quack

    View Slide

  17. Duck
    Pigeon
    If it walks like a ***
    and flies like a ***,
    it must be a ***

    View Slide

  18. Bird

    View Slide

  19. If it be born like a ***
    and dies like a ***,
    it must be a ***

    View Slide

  20. Living
    Thing
    T h e A n y t h i n g G o e s

    View Slide

  21. Let’s seek just the right border
    Coo Coo Coo Coo
    Flies
    Walks
    Eats
    Runs
    Dies
    Be Born
    Pigeon

    View Slide

  22. 2. Viewpoint

    View Slide

  23. Who are your users?

    View Slide

  24. Click Me
    What happens?

    View Slide

  25. Transfer Money
    Show Logs
    Show Amounts

    View Slide

  26. Transfer Money
    Show Logs
    Show Amounts
    SCARY!!!!

    View Slide

  27. Developer User

    View Slide

  28. Communication

    View Slide

  29. Observation

    View Slide

  30. Newbie

    View Slide

  31. ProTips: Marriage

    View Slide

  32. Third Person

    View Slide

  33. First Person

    View Slide

  34. 3. Interaction

    View Slide

  35. Anemic Domain Model ?

    View Slide

  36. Hyperemic Domain Model !

    View Slide

  37. Pigeon
    Pigeon

    View Slide

  38. Seller
    Buyer

    View Slide

  39. Giver
    Receiver

    View Slide

  40. Speaker
    Listener

    View Slide

  41. User Giver
    Receiver
    Seller Buyer
    Listener Speaker

    View Slide

  42. Item Recover
    Accessory
    Weapon Protector
    Helmet Boots

    View Slide

  43. Classify and Divide

    View Slide

  44. 4. Context

    View Slide

  45. User Giver
    Receiver
    Seller Buyer
    Listener Speaker

    View Slide

  46. Seller
    Buyer

    View Slide

  47. Seller
    Buyers

    View Slide

  48. Buyer
    Sellers
    Sellers
    Sellers
    Sellers
    Sellers

    View Slide

  49. Look the borders of
    contexts

    View Slide

  50. 5. Mental Model

    View Slide

  51. View Slide

  52. (3&&

    View Slide

  53. View Slide

  54. VS
    Microsoft Apple

    View Slide

  55. VS
    Window Apple

    View Slide

  56. 6. DCI

    View Slide

  57. YOU
    ARE
    READY

    View Slide

  58. Data

    View Slide

  59. Context

    View Slide

  60. Interaction

    View Slide

  61. 7. in REAL WORLD

    View Slide

  62. WE
    ARE
    READY

    View Slide

  63. View Slide

  64. class StaffContext < BluePrint::Context
    active_if do |env|
    current_user.try(:staff?)
    end
    end
    Context

    View Slide

  65. # app/blue_prints/staff_context/staff_user.rb
    module StaffContext::StaffUser
    extend BluePrint::Behavior
    !
    def user_name; "staff"; end
    end
    !
    # app/models/user.rb
    class User < ActiveRecord::Base
    def user_name; "#{name} san"; end
    end
    !
    user = User.new(name: "Magnet")
    StaffContext.deactivate!
    user.user_name # => "Magnet san"
    StaffContext.activate!
    user.user_name # => "staff" Interaction

    View Slide

  66. GOT AXES?

    View Slide