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

Extreme Isolation (Lightning talk)

chrismdp
September 15, 2013

Extreme Isolation (Lightning talk)

Slides for a lightning talk given at Barcuo 2013.

chrismdp

September 15, 2013
Tweet

More Decks by chrismdp

Other Decks in Programming

Transcript

  1. EXTREME ISOLATION @chrismdp Sunday, 15 September 13

  2. PROBLEM Sunday, 15 September 13

  3. baz bar foo quux eke baz bar foo quux eke

    baz bar foo quux eke baz bar foo quu eke baz bar foo quux eke foo quux bar quux eke bar eke bar foo quux baz eke baz bar foo Sunday, 15 September 13
  4. ACTOR MODEL OF CONCURRENCY Separating Arrangement and Work Sunday, 15

    September 13
  5. baz bar foo quux eke Sunday, 15 September 13

  6. bar foo POROs baz calling code handles the arrangement objects

    handle the work, don’t know about others objects can be called in any order POROs POROs Sunday, 15 September 13
  7. HEXAGONAL RAILS Ports and Adaptors Sunday, 15 September 13

  8. persistence web mailer view controller domain Sunday, 15 September 13

  9. persistence web mailer view controller domain Sunday, 15 September 13

  10. persistence web Plain Ruby representing your domain mailer Sunday, 15

    September 13
  11. EXTREME ISOLATION Sunday, 15 September 13

  12. domain persistence Person Sunday, 15 September 13

  13. Person Repository Person PORO Sunday, 15 September 13

  14. Person Repository Person Sunday, 15 September 13

  15. PersonRepository PersonValidator Person Web Handler Mongo web page request Request

    Handler InvalidPerson UpdatePerson Sunday, 15 September 13
  16. put “person/:slug” do |slug| updated_person = find(slug). with_description(params[:description]). with_topics([params[:topics]) queue

    = PersonValidator.new.validate(updated_person) queue = PersonEditor.new(slug).pipe(queue) PersonMongoRepository.apply(queue) SinatraResponder.apply(queue) end Sunday, 15 September 13
  17. BENEFITS Sunday, 15 September 13

  18. EACH OBJECT IS INDEPENDENT Dealing with value objects on the

    edges Sunday, 15 September 13
  19. UpdatePerson Web Handler web page InvalidPerson Sunday, 15 September 13

  20. PersonRepository UpdatePerson Mongo InvalidPerson Sunday, 15 September 13

  21. IMMUTABLE VALUE OBJECTS Freeze is your friend Sunday, 15 September

    13
  22. EXAMPLE ON GITHUB http://github.com/thinkcodelearn/discover Sunday, 15 September 13

  23. BLOG SERIES http://chrismdp.com Sunday, 15 September 13

  24. THANKS @chrismdp Sunday, 15 September 13