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

Single Responsibility Rails

Single Responsibility Rails

An extended version of the talk where I introduce Hexagonal Rails as an extension of SRP.

Rae Bonfanti

January 22, 2015
Tweet

More Decks by Rae Bonfanti

Other Decks in Programming

Transcript

  1. S I N G L E R E S P

    O N S I B I L I T Y R A I L S @ W H O I S R A E
  2. S M A L L , R E S T

    F U L C O N T R O L L E R S
  3. P E R S I S T E N C

    E S E PA R AT E D F R O M D O M A I N
  4. M A N Y S M A L L O

    B J E C T S
  5. A R C H I T E C T U

    R E A S T R O N O M Y
  6. – K E N T B E C K “Software

    Design is about change”
  7. S I N G L E R E S P

    O N S I B I L I T Y
  8. - R E B E C C A W I

    R F S - B R O C K “A class has responsibilities that fulfill its purpose.”
  9. B U T W H AT D O E S

    I T L O O K L I K E ?
  10. – S A N D I M E T Z

    “Your first obligation is to take a deep breath and insist that it be simple.”
  11. M E T H O D - T O -

    M E T H O D - O B J E C T
  12. M O A R M E T H O D

    T O M E T H O D O B J E C T ! !
  13. C O P Y M E T H O D

    L O G I C I N T O N E W O B J E C T
  14. I T S TA R T E D W I

    T H Q U E RY
  15. TA R G E T C O N T R

    O L L E R S A N D A C T I V E R E C O R D M O D E L S
  16. S M A L L E R O B J

    E C T S = = S C O P E D C O N C E R N S
  17. A N AT U R A L E X T

    E N S I O N O F S R P
  18. R E U S A B L E L O

    G I C — D RY
  19. E A S I E R T O U P

    G R A D E R A I L S
  20. S I N G L E R E S P

    O N S I B I L I T Y R A I L S @ W H O I S R A E
  21. E X C E L L E N T R

    E S O U R C E S • [Сергей Лепехин, Ben Ten Toy Photos](https://500px.com/Lepser_ru) • [Sandi Metz, Practical Object-Oriented Design in Ruby: An Agile Primer](http://www.poodr.com/) • [Katrina Owens](http://www.confreaks.com/videos/1071-cascadiaruby2012-therapeutic- refactoring) • [Martin Fowler, Replace Method with Method Object](http://refactoring.com/catalog/ replaceMethodWithMethodObject.html) • [Matt Wynn, GoRuCo 2012 Hexagonal Rails](https://www.youtube.com/watch?v=CGN4RFkhH2M) • [Alistar Cockburn, Hexagonal Architecture](http://alistair.cockburn.us/Hexagonal+architecture)