Pragmatic Rails Architecture [SF Rails, 24 Apr 14]

1,277 views

Published on

Presented at http://www.meetup.com/SFRails/events/167605832/

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,277
On SlideShare
0
From Embeds
0
Number of Embeds
75
Actions
Shares
0
Downloads
4
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Pragmatic Rails Architecture [SF Rails, 24 Apr 14]

  1. 1. rainforest @rainforestqa Pragmatic Rails Architecture
  2. 2. @rainforestqarainforest Rainforest Human powered QA SaaS Enables ‘Continuous QA’ Built for cross-functional teams
  3. 3. @rainforestqarainforest Us Team of 6 in SoMa All developers YC S12
  4. 4. @rainforestqarainforest What is pragmatism?
  5. 5. @rainforestqarainforest Practical applications of X
  6. 6. @rainforestqarainforest What do I mean by “practical”
  7. 7. @rainforestqarainforest Impractical Things breaking Inconsistency Complexity Manual intervention
  8. 8. @rainforestqarainforest Practical Simple Works Hands off
  9. 9. @rainforestqarainforest What do I mean by “architecture”?
  10. 10. @rainforestqarainforest The parts of your stack that you can’t remove without breaking things
  11. 11. @rainforestqarainforest So…how?
  12. 12. @rainforestqarainforest Understand your choices
  13. 13. @rainforestqarainforest Understand your tradeoffs
  14. 14. @rainforestqarainforest All these matter Hosting Code (Gems + your code) Services Testing
  15. 15. @rainforestqarainforest Hosting Understand what your team is capable of what’s important?
  16. 16. Co-lo / Dedicated AWS / VPS Heroku / PaaS
  17. 17. Co-lo / Dedicated AWS / VPS >>> Heroku / PaaS <<<
  18. 18. –John Nunemaker “You're An Idiot For Not Using Heroku.”
  19. 19. @rainforestqarainforest Code Single responsibility principle Multiple apps - learn when to split
  20. 20. @rainforestqarainforest Gems Always check for gems Use the maintained ones Fix the unmaintained ones
  21. 21. @rainforestqarainforest Picking Gems; quick guide
  22. 22. Is it active?
  23. 23. Old pull requests?
  24. 24. Read the code
  25. 25. @rainforestqarainforest Picking gems; quick guide active? read the code I can has tests?
  26. 26. @rainforestqarainforest Services Core: datastore, queuing External: email service, monitoring, etc
  27. 27. @rainforestqarainforest Datastore (1/2) Understand your use-case Pick one your team understands Generally, avoid trends If not understood, research weaknesses
  28. 28. @rainforestqarainforest Datastore 2/2 Keep to the standards: MySQL / Postgres
  29. 29. @rainforestqarainforest External services Use them where not your core Generally cheaper + better + simpler
  30. 30. @rainforestqarainforest Queuing QueueClassic
  31. 31. @rainforestqarainforest Extra stuff
  32. 32. @rainforestqarainforest Monitoring Your service - web, db, queue size, etc External services - stripe.js? heroku? aws?
  33. 33. @rainforestqarainforest Deployment + CI You should do this
  34. 34. @rainforestqarainforest Testing Importance, imho: #1 cover main flows for the user #2 integration + front end regressions #3 unit tests
  35. 35. @rainforestqarainforest Conclusion understand your tradeoffs the least reliable part of your stack = your reliability monitor things
  36. 36. rainforest @rainforestqa Questions? @rainforestqa @rhs

×