Successfully reported this slideshow.
Your SlideShare is downloading. ×

Desing principles: tensions and synergies v3.0

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 22 Ad

Desing principles: tensions and synergies v3.0

Download to read offline

Version presented at Agile Day 2014

We created a workshop to help developers to start learning and questioning design principles.
The basic idea is to put them one against the other and realise how they are applied differently based on context and that design is based on trade-off choices.

People will be splitted into pairs working on a small code exercise.
Starting from a small codebase you’ll be asked to implement a new feature following one principle.

After 20/30min we’ll share our code in a facilitated conversation

Check the code and all the support material to repeat the dojo at:
https://github.com/iliasbartolini/design_principles_dojo_facilitator_guide
https://github.com/iliasbartolini/design_principles_dojo

Version presented at Agile Day 2014

We created a workshop to help developers to start learning and questioning design principles.
The basic idea is to put them one against the other and realise how they are applied differently based on context and that design is based on trade-off choices.

People will be splitted into pairs working on a small code exercise.
Starting from a small codebase you’ll be asked to implement a new feature following one principle.

After 20/30min we’ll share our code in a facilitated conversation

Check the code and all the support material to repeat the dojo at:
https://github.com/iliasbartolini/design_principles_dojo_facilitator_guide
https://github.com/iliasbartolini/design_principles_dojo

Advertisement
Advertisement

More Related Content

Viewers also liked (16)

Recently uploaded (20)

Advertisement

Desing principles: tensions and synergies v3.0

  1. 1. Design Principles Tensions & Synergies Ilias Bartolini v 3 . 0
  2. 2. 2 HOW IT WORKS ● Divide into pairs ● Start setup development environment ● Explain the tensions & synergies ● Choose a design principle or rule ● Game of life ● Implement a new user story (45min) Showcase changes How did it affect other principles? Post-it!! Repeat ● Conclusions ● Feedback BREAK
  3. 3. 3 Introductions
  4. 4. 4 http://bit.ly/oo_dojo Fork me! Follow README to build & test
  5. 5. 5 A SIMPLE EXAMPLE
  6. 6. 6 Encapsulation Single Responsibility A SIMPLE EXAMPLE
  7. 7. 7 A SIMPLE EXAMPLE
  8. 8. 8 Encapsulation Single Responsibility A SIMPLE EXAMPLE
  9. 9. 9 Single Responsibility vs Encapsulation
  10. 10. 10 SOME PRINCIPLES AND RULES...
  11. 11. 11 USING PRINCIPLES AND RULES... Patrick Kua - http://www.slideshare.net/thekua/learning-about-learning-with-dreyfus-7924019
  12. 12. 12 Conway's Game of Life 1. Any live cell with fewer than two live neighbours dies, as if caused by under-population. 2. Any live cell with two or three live neighbours lives on to the next generation. 3. Any live cell with more than three live neighbours dies, as if by overcrowding. 4. Any dead cell with exactly three live neighbours becomes a live cell, as if by reproduction. http://en.wikipedia.org/wiki/Conway%27s_Game_of_Life
  13. 13. 13 As the supreme product owner I want any cell with >= 4 alive neighbours to become a zombie so that apocalypse can begin.. #5
  14. 14. 14 As the supreme product owner I want any cell with >= 4 alive neighbours to become a zombie so that apocalypse can begin..(ps. Zombies will be forever zombie, cannot die or become alive again) #5
  15. 15. 15 Code showcase Don't worry, be crappy :-)
  16. 16. 16 Encapsulation Single Responsibility DRY High Cohesion Composition over inheritanceNo code duplication Low Coupling Demeter Tell, don't ask Dependency Inversion Interface Segregation Express Intent Open-Close Liskov Substitution https://docs.google.com/spreadsheets/d/1jiqS5soI0PCo8Rm4M6LFJ20L3I6yJeyuOjLAK23RDWY/edit TENSIONS AND SYNERGIES (v3.0) WHAT WE LEARNED SO FAR... ?? Dependency Injection ?
  17. 17. 17 Design decisions are trade-offs
  18. 18. 18 Recap
  19. 19. 19 Questions?
  20. 20. 20 DO YOU WANT TO REPEAT THIS EXERCISE? http://bit.ly/oo_dojo_facilitator
  21. 21. 21 Feedback
  22. 22. 22 THANKS Modify and reuse CC-BY-SA https://github.com/iliasbartolini/design_principles_dojo_facilitator_guide Contributions from: Luca Minudel Matteo Vaccari CC photo credits: https://www.flickr.com/photos/torek/4444673930

×