Last week during Hydra Connect 2014 at Case Western Reserve University, I presented on Taming Hydra and Rails. The presentation was going to be 30 minutes but I condensed it into 5 minutes.

Over the next few weeks I hope to write several blog posts delving into how I hope to write more shareable code. These posts are from my observations on developing applications by myself and developing applications that are to be shared by multiple institutions. The posts will leverage sources that I’ve read and followed.

My general conjecture is that Rails provides you tools for writing your application very fast. It does not provide solid guidance on:

  • maintaining your application
  • decomposing your application into smaller parts
  • sharing your application with others in a configurable manner

I have written code that was inflexible and painful to use. I have also written code that is a joy to work with, as it remains flexible yet cohesive.

Topics that I’m going to explore are:

  1. Code is a Conversation
  2. Never Unprepared for Collaboration
  3. ActiveRecord Pattern and Alternatives
  4. Rails: Come for the Active Record, Stay for the Testing
  5. Test Driven Development
  6. Modes of Development
  7. Pay Attention to Pain Points
  8. Leveraging Instance Variables in Ruby Classes
  9. Fast Tests
  10. S.O.L.I.D. Design Principles
  11. Command / Query Separation
  12. Controller Action’s as Objects
  13. Composition over Inheritance

I don’t have comments enabled for this blog, but I want this to be an ongoing conversation. So if you want to engage with me consider: