hexagonal rails
play

Hexagonal Rails @mattwynne GOTO !Amsterdam !| !18th !June !2013 - PowerPoint PPT Presentation

Refactoring Workshop Hexagonal Rails @mattwynne GOTO !Amsterdam !| !18th !June !2013 Tuesday, 18 June 13 Structure of this session: Installing things (first pass) Intro presentation Installing things (for real) Refactoring


  1. Refactoring Workshop Hexagonal Rails @mattwynne GOTO !Amsterdam !| !18th !June !2013 Tuesday, 18 June 13

  2. Structure of this session: • Installing things (first pass) • Intro presentation • Installing things (for real) • Refactoring exercise • Further exploration • Show & tell Tuesday, 18 June 13

  3. Tuesday, 18 June 13

  4. Tuesday, 18 June 13

  5. Tuesday, 18 June 13

  6. Tuesday, 18 June 13

  7. Tuesday, 18 June 13

  8. and then... Tuesday, 18 June 13

  9. Tuesday, 18 June 13

  10. Why? Tuesday, 18 June 13

  11. Tuesday, 18 June 13

  12. Connected Tuesday, 18 June 13

  13. Modular Tuesday, 18 June 13

  14. Tuesday, 18 June 13

  15. Tuesday, 18 June 13

  16. Modular, in the large Tuesday, 18 June 13

  17. Tuesday, 18 June 13

  18. Modular, in the small Tuesday, 18 June 13

  19. Tuesday, 18 June 13

  20. Your domain model is not in your classes, it's in the communication patterns between the objects at runtime . Tuesday, 18 June 13

  21. Your domain model is not in your classes, it's in the communication patterns between the objects at runtime . — Steve Freeman & Nat Price Tuesday, 18 June 13

  22. Your domain model is not where you think it is Tuesday, 18 June 13

  23. Your domain model is in the protocols Tuesday, 18 June 13

  24. Procedural code gets information then makes decisions. Object-oriented code tells objects to do things. — Alec Sharp, Smalltalk by Example Tuesday, 18 June 13

  25. Tell, don't ask Procedural code gets information then makes decisions. Object-oriented code tells objects to do things. — Alec Sharp, Smalltalk by Example Tuesday, 18 June 13

  26. Core domain model cannot depend on the framework Rules T e l l o b j e c t s , a s k v a l u e s Tuesday, 18 June 13

  27. Implications Tuesday, 18 June 13

  28. Core domain model cannot C o r e d o m a depend on the i n m o d e l c a n n o framework t i n h e r i t f r o m A c t i v e R e c o r d F r a m e w o r k c o m m u n i c a t e s w i t h t h e c o r e d o m a i n v i a A d a p t e r s Tuesday, 18 June 13

  29. s e t a l p m e t Y w o e u i V c r a e n d ' t n s e a r y d : l i u f o ¡ h u e s s l b e a r t . u s m a v m e i m o r f s e u l a v T e l l o b j e c t s , a s k v a l u e s Tuesday, 18 June 13

  30. Example: Passive Controller Tuesday, 18 June 13

  31. Tuesday, 18 June 13

  32. Tuesday, 18 June 13

  33. Tuesday, 18 June 13

  34. Tuesday, 18 June 13

  35. Tuesday, 18 June 13

  36. Tuesday, 18 June 13

  37. Tuesday, 18 June 13

  38. Tuesday, 18 June 13

  39. Tuesday, 18 June 13

  40. Let's explore! Tuesday, 18 June 13

  41. References http://nccasta ff .bournemouth.ac.uk/jmacey/CA1/Papers/Responsibility-Driven%20Design.pdf http://www.wirfs-brock.com/PDFs/How%20Designs%20Di ff er.pdf http://www.threeriversinstitute.org/blog/?p=338 http://alistair.cockburn.us/Hexagonal+architecture http://www.growing-object-oriented-software.com/ http://pragprog.com/articles/tell-dont-ask http://devblog.avdi.org/2012/03/15/now-available-objects-on-rails/ http://mattwynne.net/category/hexagonal-rails/ Tuesday, 18 June 13

Recommend


More recommend