Successfully reported this slideshow.
Your SlideShare is downloading. ×

Practical SOLID with Rails - Andrii Savchenko

Advertisement

More Related Content

More from Ruby Meditation

Advertisement

Related Books

Free with a 30 day trial from Scribd

See all

Practical SOLID with Rails - Andrii Savchenko

  1. 1. Practical SOLID with Rails Andrey Savchenko CTO @ Aejis Tuesday, March 19, 13
  2. 2. Let’s start the our new, awesome project! Tuesday, March 19, 13
  3. 3. class < ActiveRecord::Base belongs_to :company has_many :products has_many :warehouses validates_presence_of :name end Tuesday, March 19, 13
  4. 4. Tuesday, March 19, 13
  5. 5. 10 months later... Tuesday, March 19, 13
  6. 6. Tuesday, March 19, 13
  7. 7. Tuesday, March 19, 13
  8. 8. SOLID Tuesday, March 19, 13
  9. 9. SOLID • Single responsibility principle • Open-Closed principle • Liskov substitution principle • Interface segregation principle • Dependency inversion principle Tuesday, March 19, 13
  10. 10. SRP • Easy to read • Easy to change • Easy to reuse No god objects Tuesday, March 19, 13
  11. 11. Tuesday, March 19, 13
  12. 12. Tuesday, March 19, 13
  13. 13. Tuesday, March 19, 13
  14. 14. Tuesday, March 19, 13
  15. 15. Tuesday, March 19, 13
  16. 16. Tuesday, March 19, 13
  17. 17. Tuesday, March 19, 13
  18. 18. Tuesday, March 19, 13
  19. 19. Tuesday, March 19, 13
  20. 20. Tuesday, March 19, 13
  21. 21. PROFIT!? Tuesday, March 19, 13
  22. 22. So much objects? NO! Tuesday, March 19, 13
  23. 23. YES! • https://github.com/drapergem/draper • https://github.com/mbj/aequitas • https://github.com/Ptico/resourced • https://github.com/bogdan/datagrid Tuesday, March 19, 13
  24. 24. OCP Tuesday, March 19, 13
  25. 25. Tuesday, March 19, 13
  26. 26. Tuesday, March 19, 13
  27. 27. LSP Tuesday, March 19, 13
  28. 28. ISP Tuesday, March 19, 13
  29. 29. DI Tuesday, March 19, 13
  30. 30. Tuesday, March 19, 13
  31. 31. Tuesday, March 19, 13
  32. 32. Picture with cat Because everyone loves cats <3 Tuesday, March 19, 13
  33. 33. Questions? • Twitter: @ptico • Github: @ptico Tuesday, March 19, 13

×