際際滷

際際滷Share a Scribd company logo
Design Principles
Tensions & Synergies
Ilias Bartolini
v 3 . 0
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
Introductions
4
http://bit.ly/oo_dojo
Fork me!
Follow README to build & test
5
A SIMPLE EXAMPLE
6
Encapsulation
Single Responsibility
A SIMPLE EXAMPLE
7
A SIMPLE EXAMPLE
8
Encapsulation
Single Responsibility
A SIMPLE EXAMPLE
9
Single Responsibility vs Encapsulation
10
SOME PRINCIPLES AND RULES...
11
USING PRINCIPLES AND RULES...
Patrick Kua - http://www.slideshare.net/thekua/learning-about-learning-with-dreyfus-7924019
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
As the supreme product owner
I want any cell with >= 4 alive
neighbours to become a zombie
so that apocalypse can begin..
#5
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
Code showcase
Don't worry,
be crappy :-)
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
Design decisions are trade-offs
18
Recap
19
Questions?
20
DO YOU WANT TO REPEAT THIS EXERCISE?
http://bit.ly/oo_dojo_facilitator
21
Feedback
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

More Related Content

Desing principles: tensions and synergies v3.0