SlideShare ist ein Scribd-Unternehmen logo
1 von 61
Downloaden Sie, um offline zu lesen
Evolving Architecture
@dpokusa
Document
A B C
Document
A B CDocumentFactory
Document
A B CDocumentFactory
AbstractDocumentFactory
Document
A B CDocumentFactory
AbstractDocumentFactory
SectionA SectionB
Document
A B CDocumentFactory
AbstractDocumentFactory
SectionA SectionB
Decorated
A
fot. Iza Janoszek, Radio Eska
Overdesign
DIE
DRYDIE
https://commons.wikimedia.org/wiki/File:Tecnology_Life_Cycle.png
UNDERDESIGN
KISS
YAGNIKISS
COMMONS
COMMONS
UTILS
BASE
GENERAL
STUFF
SHARED
POPULAR
VARY
GLOBAL
A
COMMONS
CA B
Quality means doing it right
when no one is looking
- Henry Ford
CZAS
FUNKCJONALNOŚĆ
ZASOBY
CZAS
FUNKCJONALNOŚĆ
ZASOBY
CZAS
FUNKCJONALNOŚĆ
ZASOBY
CZAS
FUNKCJONALNOŚĆ
ZASOBY
JAKOŚĆ
CZASFUNKCJONALNOŚĆ
ZASOBY
JAKOŚĆ
CZASFUNKCJONALNOŚĆ
ZASOBY
JAKOŚĆ
CZASFUNKCJONALNOŚĆ
ZASOBY
JAKOŚĆ
CZASFUNKCJONALNOŚĆ
ZASOBY
JAKOŚĆ
CZASFUNKCJONALNOŚĆ
ZASOBY
QUALITY
TECHNOLOGY FREEDOM
TECHNOLOGY PRISON
READABILITY CONSIDERATIONS
1. Podejmuj decyzje najpóźniej jak to możliwe,
1. Podejmuj decyzje najpóźniej jak to możliwe,
2. Pierwszym rozwiązaniem zazwyczaj nie jest wzorzec projektowy,
1. Podejmuj decyzje najpóźniej jak to możliwe,
2. Pierwszym rozwiązaniem zazwyczaj nie jest wzorzec projektowy,
3. Klient zawsze oczekuje jakości,
1. Podejmuj decyzje najpóźniej jak to możliwe,
2. Pierwszym rozwiązaniem zazwyczaj nie jest wzorzec projektowy,
3. Klient zawsze oczekuje jakości,
4. Kod powinien być czytelny,
1. Podejmuj decyzje najpóźniej jak to możliwe,
2. Pierwszym rozwiązaniem zazwyczaj nie jest wzorzec projektowy,
3. Klient zawsze oczekuje jakości,
4. Kod powinien być czytelny,
5. Nigdy nie zapominaj o refaktoryzacji,
1. Podejmuj decyzje najpóźniej jak to możliwe,
2. Pierwszym rozwiązaniem zazwyczaj nie jest wzorzec projektowy,
3. Klient zawsze oczekuje jakości,
4. Kod powinien być czytelny,
5. Nigdy nie zapominaj o refaktoryzacji,
6. Nie traktuj testów jako odrębnego bytu,
1. Podejmuj decyzje najpóźniej jak to możliwe,
2. Pierwszym rozwiązaniem zazwyczaj nie jest wzorzec projektowy,
3. Klient zawsze oczekuje jakości,
4. Kod powinien być czytelny,
5. Nigdy nie zapominaj o refaktoryzacji,
6. Nie traktuj testów jako odrębnego bytu,
7. "Scrappy" zostanie na dłużej niż sądzisz,
1. Podejmuj decyzje najpóźniej jak to możliwe,
2. Pierwszym rozwiązaniem zazwyczaj nie jest wzorzec projektowy,
3. Klient zawsze oczekuje jakości,
4. Kod powinien być czytelny,
5. Nigdy nie zapominaj o refaktoryzacji,
6. Nie traktuj testów jako odrębnego bytu,
7. "Scrappy" zostanie na dłużej niż sądzisz,
8. Pisz biblioteki, nie frameworki,
1. Podejmuj decyzje najpóźniej jak to możliwe,
2. Pierwszym rozwiązaniem zazwyczaj nie jest wzorzec projektowy,
3. Klient zawsze oczekuje jakości,
4. Kod powinien być czytelny,
5. Nigdy nie zapominaj o refaktoryzacji,
6. Nie traktuj testów jako odrębnego bytu,
7. "Scrappy" zostanie na dłużej niż sądzisz,
8. Pisz biblioteki, nie frameworki,
9. Spróbuj zrozumieć biznes,
1. Podejmuj decyzje najpóźniej jak to możliwe,
2. Pierwszym rozwiązaniem zazwyczaj nie jest wzorzec projektowy,
3. Klient zawsze oczekuje jakości,
4. Kod powinien być czytelny,
5. Nigdy nie zapominaj o refaktoryzacji,
6. Nie traktuj testów jako odrębnego bytu,
7. "Scrappy" zostanie na dłużej niż sądzisz,
8. Pisz biblioteki, nie frameworki,
9. Spróbuj zrozumieć biznes,
10. Jeśli tylko możesz -> DDD i TDD,
1. Podejmuj decyzje najpóźniej jak to możliwe,
2. Pierwszym rozwiązaniem zazwyczaj nie jest wzorzec projektowy,
3. Klient zawsze oczekuje jakości,
4. Kod powinien być czytelny,
5. Nigdy nie zapominaj o refaktoryzacji,
6. Nie traktuj testów jako odrębnego bytu,
7. "Scrappy" zostanie na dłużej niż sądzisz,
8. Pisz biblioteki, nie frameworki,
9. Spróbuj zrozumieć domenę biznesową,
10. Jeśli tylko możesz -> DDD i TDD,
11. Nie zamykaj się na nowe technologie, ale równocześnie ograniczaj ich ilość.
ABOUT
software-empathy.pl
@dpokusa
@dpokusa
ABOUT
SPREADIT.PL
18.11.2017
@dpokusa
ABOUT
Q&A

Weitere ähnliche Inhalte

Mehr von Daniel Pokusa

Mehr von Daniel Pokusa (9)

Errors errors, everywhere! - JSession
Errors errors, everywhere! - JSessionErrors errors, everywhere! - JSession
Errors errors, everywhere! - JSession
 
Errors errors, everywhere! - 4Developers 2018
Errors errors, everywhere! - 4Developers 2018Errors errors, everywhere! - 4Developers 2018
Errors errors, everywhere! - 4Developers 2018
 
Errors errors everywhere! - BoilingFrogs 2018
Errors errors everywhere! - BoilingFrogs 2018Errors errors everywhere! - BoilingFrogs 2018
Errors errors everywhere! - BoilingFrogs 2018
 
Orchestrate Your Choreography
Orchestrate Your ChoreographyOrchestrate Your Choreography
Orchestrate Your Choreography
 
Java: Nie popełniaj tych błędów!
Java: Nie popełniaj tych błędów!Java: Nie popełniaj tych błędów!
Java: Nie popełniaj tych błędów!
 
How to become a DevOps
How to become a DevOpsHow to become a DevOps
How to become a DevOps
 
Work in agile distributed teams. Cookbook
Work in agile distributed teams. CookbookWork in agile distributed teams. Cookbook
Work in agile distributed teams. Cookbook
 
Jak wdrożyć Continuous Delivery do Twojego (starego) projektu?
Jak wdrożyć Continuous Delivery do Twojego (starego) projektu?Jak wdrożyć Continuous Delivery do Twojego (starego) projektu?
Jak wdrożyć Continuous Delivery do Twojego (starego) projektu?
 
IDE to za mało! Jak stworzyć efektywne środowisko pracy?
IDE to za mało! Jak stworzyć efektywne środowisko pracy?IDE to za mało! Jak stworzyć efektywne środowisko pracy?
IDE to za mało! Jak stworzyć efektywne środowisko pracy?
 

Evolving architecture 4 Confitura 2017