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

GET STARTED WITH COMPONENT-BASED RAILS APPLICATIONS! @ Rocky Mountain Ruby 2015

Affa5b7b3a311fcf5f868859d586b410?s=47 shagemann
September 23, 2015

GET STARTED WITH COMPONENT-BASED RAILS APPLICATIONS! @ Rocky Mountain Ruby 2015

Same title - different content! This time co-presented with Jeff Taggart @jetaggart.

Component-based Rails helps you regain control over your sprawling Rails application. It helps you structure your new Rails application in a way that it will stay more manageable longer. It helps you think completely differently about writing applications - not just in Ruby and Rails!

This session will help you pass the initial hurdle of getting started with component-based Rails. While there is nothing really new, there is a lot that is just a little different. We will go over those differences so your start with component-based Rails is a smooth one.

Affa5b7b3a311fcf5f868859d586b410?s=128

shagemann

September 23, 2015
Tweet

Transcript

  1. Rails Components @ RMR 2015 Stephan Hagemann, Jeff Taggart @shageman,

    @jetaggart
  2. Agenda 1. Who are you? And why components? 2. What

    are components? 3. The structure of your app 4. Real life example: The structure of P2Bi 5. The first refactor @shageman, @jetaggart
  3. Who are you? Why components? @shageman, @jetaggart

  4. Jeff… Stephan... @shageman, @jetaggart

  5. What are components? @shageman, @jetaggart

  6. https://github.com/barinek/uservices @shageman, @jetaggart

  7. a context explicit dependencies @shageman, @jetaggart

  8. Creating an application based on components creates constraints that will

    improve the overall maintainability of your app @shageman, @jetaggart
  9. Creating an application based on components creates conversations that will

    improve the overall maintainability of your app @shageman, @jetaggart
  10. The structure of your app @shageman, @jetaggart

  11. @shageman, @jetaggart

  12. @shageman, @jetaggart

  13. @shageman, @jetaggart

  14. @shageman, @jetaggart

  15. Architecture Sketching Exercise @shageman, @jetaggart

  16. Real life example: The structure of P2Bi @shageman, @jetaggart

  17. None
  18. JEFF: ARCHITECTURE DIAGRAM @shageman, @jetaggart

  19. @shageman, @jetaggart

  20. Discussion of P2B Code @shageman, @jetaggart

  21. The first refactor @shageman, @jetaggart

  22. For this example application, your imaginary client, who has limitless

    time and budget (unlike clients in the real world), wants you to develop a ticket-tracking application to track the company’s numerous projects. @shageman, @jetaggart https://github.com/rubysherpas/r4ia_examples
  23. github.com/shageman/r4ia_examples gist.github.com/shageman/ 89d869ef8539f78312b0 @shageman, @jetaggart

  24. Pros and Cons of persistence extraction • mechanical refactoring (i.e.,

    fast) • shows entanglement of model layer • works on every app • scriptable • creates a sample and pattern • It does (not yet) create a meaningful “domain component” @shageman, @jetaggart
  25. Discussion of extraction script @shageman, @jetaggart

  26. Extraction exercise for everyone’s apps @shageman, @jetaggart

  27. Wrapping up @shageman, @jetaggart

  28. Working on it… 50% off: leanpub.com/cbra/c/rmr15 @shageman, @jetaggart

  29. http://cbra.info Link collection about CBRA @shageman, @jetaggart

  30. Check out: http://lotusrb.org/ Lotus MVC @shageman, @jetaggart

  31. Thanks! @shageman, @jetaggart