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

DCI: Let the code do the talking

DCI: Let the code do the talking

“DCI and the application builds our mental models” redux

34fcd5f1deeb25b1138e9845137feb6e?s=128

Shintaro Kakutani

December 01, 2012
Tweet

Transcript

  1. DCILET THE CODE DO THE TALKING “DCI and the application

    builds our mental models” redux Shintaro Kakutani(@kakutani), ruby-no-kai || esminc,Fukuoka RubyKaigi 01, 2012-12-01(Sat)
  2. taken by @hibariya @kakutani @j2h #rubyfriends

  3. ఏɹڙ ͓͔͛͞·Ͱ̏̌प೥ ৘ใԽٕज़Λ௨ͯࣾ͡ձͱڞੜ͢Δ

  4. None
  5. Asakusa.rb http://www.flickr.com/photos/takkanm/3978417669

  6. http://www.amazon.co.jp/o/ASIN/4274068560/kakutani-22

  7. http://rubyfriends.com

  8. http://www.slideshare.net/snoozer05/20101204-youmustunlearnwhatyouhavelearned/61

  9. None
  10. DCILET THE CODE DO THE TALKING “DCI and the application

    builds our mental models” redux Shintaro Kakutani(@kakutani), ruby-no-kai || esminc,Fukuoka RubyKaigi 01, 2012-12-01(Sat)
  11. James O.Coplien

  12. We’ve already had nice resources on the net...

  13. http://www.amazon.co.jp/o/ASIN/0470684208/kakutani-22/ref=nosim/

  14. http://objectsonrails.com/

  15. http://clean-ruby.com/

  16. http://rubysource.com/dci-the-evolution-of-the-object-oriented-paradigm/

  17. http://dci-in-ruby.info/resources.html

  18. http://mikepackdev.com/blog_posts/24-the-right-way-to-code-dci-in-ruby

  19. ιϑτ΢ΣΞ͸ Ͳ͜ʹ͋Δͷ͔

  20. ιϑτ΢ΣΞ͸಄ͷͳ͔ʹ͋Δ

  21. ΤϯυϢʔβʔͷ ϝϯλϧϞσϧΛ ιʔείʔυͱͯ͠ දݱ͢Δ

  22. গͣͭ͠ɺ ܁Γฦ͠ͳ͕Β ҭ͍ͯͯ͘

  23. Software Development as Learning Process

  24. “Agile”

  25. ςετۦಈ։ൃ

  26. ΦϒδΣΫτࢦ޲ઃܭ

  27. ద੾ͳ໊લͷ͍ͭͨ ίʔυΛద੾ͳ৔ॴʹ ஔ͘͜ͱ

  28. Ruby

  29. ✓ Agile Style Workflow ✓ Test Driven Development ✓ Object-Oriented

    Design ✓ Ruby
  30. ιϑτ΢ΣΞ͸಄ͷͳ͔ʹ͋Δ

  31. http://www.amazon.co.jp/o/ASIN/4798124583/kakutani-22/ref=nosim/

  32. We’re on the same rails http://pixdaus.com/single.php?id=104150

  33. http://guides.rubyonrails.org/getting_started.html

  34. http://guides.rubyonrails.org/getting_started.html#the-mvc-architecture

  35. HTTP: Hyper TEXT Transfer Protocol

  36. http://martinfowler.com/eaaCatalog/activeRecord.html

  37. Active Record is a pattern for persistence

  38. Rails doesn’t save YOUR Applications! (it’s an awesome FRAMEWORK!)

  39. http://www.flickr.com/photos/essgee/2477102230/ Recap ‘Common Pitfalls’ @ursm mentioned in Sapporo RubyKaigi 2012

  40. http://sapporo.rubykaigi.org/2012/en/schedule/details/64.html

  41. ✓ Helpers don’t help up ✓ Partials are just partial,

    Not parts ✓ Too Fat to be a model
  42. ✓ Helpers don’t help up ✓ Partials are just partial,

    Not parts ✓ Too Fat to be a model
  43. Too Fat to be a model

  44. None
  45. DCI Data-Context-Interaction

  46. ✓ Data: AR domain knowledge structure ✓ Context: ৔(Ba) Playing

    field for “objects” ✓ Interaction: Role Object#extend / refinements?
  47. http://mikepackdev.com/blog_posts/24-the-right-way-to-code-dci-in-ruby

  48. ✓ Data: AR ✓ Context: “Activities” ✓ Interaction: Modules Poor

    man’s DCI: you should check the talk given by @ursm in sapporo RubyKaigi 2012, thanks!
  49. http://qa.atmarkit.co.jp/

  50. Recap

  51. ✓ Agile Style Workflow ✓ Test Driven Development ✓ Object-Oriented

    Design ✓ Ruby
  52. Rails doesn’t save YOUR Applications! (it’s an awesome FRAMEWORK!)

  53. ΤϯυϢʔβʔͷ ϝϯλϧϞσϧΛ ιʔείʔυͱͯ͠ දݱ͢Δ

  54. ιϑτ΢ΣΞ͸಄ͷͳ͔ʹ͋Δ

  55. Bonus Takeaway

  56. https://codeclimate.com/

  57. None
  58. ιϑτ΢ΣΞΛཧղ͢Δͷʹ͋ͨΓɺυΩϡ ϝϯτ͕͋Δͱྑ͍͠ɺςετίʔυ΋͋Δͱ ॿ͔ΔɻϓϩμΫγϣϯίʔυʹίϝϯτ͕͋ Ε͹͔֬ʹศར͚ͩͲɺϓϩμΫγϣϯίʔυ ͦͷ΋ͷ͕ͦͷιϑτ΢ΣΞͷ͜ͱΛޠ͍ͬͯ ΔΑ͏ʹίʔυΛॻ͚ΔΑ͏ʹʜʜͳΓ͍ͨ ͶɻͰ΋ɺͦͷͨΊʹ͸ɺ͚͖ͬΐࣗ͘෼ͨͪ ্͕खʹͳΔΑ͏ʹ࿅शΛॏͶ͍͔ͯ͘͠ͳ͍ ͱࢥ͏ͷͰɺΈͳ͞ΜҰॹʹ͕Μ͹Ζ͏

  59. Let the Code Do The Talking!