Desing principles: tensions and synergies v3.0
-
Upload
ilias-bartolini -
Category
Software
-
view
345 -
download
0
description
Transcript of Desing principles: tensions and synergies v3.0
![Page 1: Desing principles: tensions and synergies v3.0](https://reader033.fdocuments.net/reader033/viewer/2022060121/559444411a28ab0c308b475f/html5/thumbnails/1.jpg)
Design Principles Tensions & Synergies
Ilias Bartolini
v 3 . 0
![Page 2: Desing principles: tensions and synergies v3.0](https://reader033.fdocuments.net/reader033/viewer/2022060121/559444411a28ab0c308b475f/html5/thumbnails/2.jpg)
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
![Page 3: Desing principles: tensions and synergies v3.0](https://reader033.fdocuments.net/reader033/viewer/2022060121/559444411a28ab0c308b475f/html5/thumbnails/3.jpg)
3
Introductions
![Page 5: Desing principles: tensions and synergies v3.0](https://reader033.fdocuments.net/reader033/viewer/2022060121/559444411a28ab0c308b475f/html5/thumbnails/5.jpg)
5
A SIMPLE EXAMPLE
![Page 6: Desing principles: tensions and synergies v3.0](https://reader033.fdocuments.net/reader033/viewer/2022060121/559444411a28ab0c308b475f/html5/thumbnails/6.jpg)
6
Encapsulation
Single Responsibility
A SIMPLE EXAMPLE
![Page 7: Desing principles: tensions and synergies v3.0](https://reader033.fdocuments.net/reader033/viewer/2022060121/559444411a28ab0c308b475f/html5/thumbnails/7.jpg)
7
A SIMPLE EXAMPLE
![Page 8: Desing principles: tensions and synergies v3.0](https://reader033.fdocuments.net/reader033/viewer/2022060121/559444411a28ab0c308b475f/html5/thumbnails/8.jpg)
8
Encapsulation
Single Responsibility
A SIMPLE EXAMPLE
![Page 9: Desing principles: tensions and synergies v3.0](https://reader033.fdocuments.net/reader033/viewer/2022060121/559444411a28ab0c308b475f/html5/thumbnails/9.jpg)
9
Single Responsibility vs Encapsulation
![Page 10: Desing principles: tensions and synergies v3.0](https://reader033.fdocuments.net/reader033/viewer/2022060121/559444411a28ab0c308b475f/html5/thumbnails/10.jpg)
10
SOME PRINCIPLES AND RULES...
![Page 11: Desing principles: tensions and synergies v3.0](https://reader033.fdocuments.net/reader033/viewer/2022060121/559444411a28ab0c308b475f/html5/thumbnails/11.jpg)
11
USING PRINCIPLES AND RULES...
Patrick Kua - http://www.slideshare.net/thekua/learning-about-learning-with-dreyfus-7924019
![Page 12: Desing principles: tensions and synergies v3.0](https://reader033.fdocuments.net/reader033/viewer/2022060121/559444411a28ab0c308b475f/html5/thumbnails/12.jpg)
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
![Page 13: Desing principles: tensions and synergies v3.0](https://reader033.fdocuments.net/reader033/viewer/2022060121/559444411a28ab0c308b475f/html5/thumbnails/13.jpg)
13
As the supreme product ownerI want any cell with >= 4 alive
neighbours to become a zombieso that apocalypse can begin..
#5
![Page 14: Desing principles: tensions and synergies v3.0](https://reader033.fdocuments.net/reader033/viewer/2022060121/559444411a28ab0c308b475f/html5/thumbnails/14.jpg)
14
As the supreme product ownerI want any cell with >= 4 alive
neighbours to become a zombieso that apocalypse can begin..(ps. Zombies will be forever
zombie, cannot die or become alive
again)
#5
![Page 15: Desing principles: tensions and synergies v3.0](https://reader033.fdocuments.net/reader033/viewer/2022060121/559444411a28ab0c308b475f/html5/thumbnails/15.jpg)
15
Code showcase
Don't worry,
be crappy :-)
![Page 16: Desing principles: tensions and synergies v3.0](https://reader033.fdocuments.net/reader033/viewer/2022060121/559444411a28ab0c308b475f/html5/thumbnails/16.jpg)
16
Encapsulation
SingleResponsibility
DRYHigh
Cohesion
Composition over inheritanceNo code
duplication
LowCoupling
Demeter
Tell, don't ask
DependencyInversion
InterfaceSegregation
Express Intent
Open-Close
LiskovSubstitution
https://docs.google.com/spreadsheets/d/1jiqS5soI0PCo8Rm4M6LFJ20L3I6yJeyuOjLAK23RDWY/edit
TENSIONS AND SYNERGIES (v3.0)WHAT WE LEARNED SO FAR... ??
DependencyInjection
?
![Page 17: Desing principles: tensions and synergies v3.0](https://reader033.fdocuments.net/reader033/viewer/2022060121/559444411a28ab0c308b475f/html5/thumbnails/17.jpg)
17
Design decisions are trade-offs
![Page 18: Desing principles: tensions and synergies v3.0](https://reader033.fdocuments.net/reader033/viewer/2022060121/559444411a28ab0c308b475f/html5/thumbnails/18.jpg)
18
Recap
![Page 19: Desing principles: tensions and synergies v3.0](https://reader033.fdocuments.net/reader033/viewer/2022060121/559444411a28ab0c308b475f/html5/thumbnails/19.jpg)
19
Questions?
![Page 20: Desing principles: tensions and synergies v3.0](https://reader033.fdocuments.net/reader033/viewer/2022060121/559444411a28ab0c308b475f/html5/thumbnails/20.jpg)
20
DO YOU WANT TO REPEAT THIS EXERCISE?
http://bit.ly/oo_dojo_facilitator
![Page 21: Desing principles: tensions and synergies v3.0](https://reader033.fdocuments.net/reader033/viewer/2022060121/559444411a28ab0c308b475f/html5/thumbnails/21.jpg)
21
Feedback
![Page 22: Desing principles: tensions and synergies v3.0](https://reader033.fdocuments.net/reader033/viewer/2022060121/559444411a28ab0c308b475f/html5/thumbnails/22.jpg)
22
THANKSModify 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