SlideShare a Scribd company logo
Jak budować
żeby nie żałować?
O mnie
O mnie:
● PHP developer - 6yo -
instapage
● TechLead - Neontri, Telemedi
● entuzjasta backendu, nauki,
narciarstwa, gierek
“oh jaki ładny chłopiec” - moja babcia
Aurora Creation
“Naszą misją jest stworzenie zespołu, który będzie
strategicznym partnerem dla topowych polskich marek
eCommerce.”
Zaczynamy
Objawy problemu:
● tarcia na linii biz-tech
● powiększający się dług
technologiczny
● wprowadzenie zmian trwa dużo
czasu
● rozwiązanie jednego problemu
powoduje 2 inne
Inżynieria nie nadąża za biznesem,
więc musi iść na kompromisy.
Dług technologiczny
Brak wspólnego języka zabiera czas
potrzebny na translację z biz na
tech
Często spotykany stan codebase
startupu - big ball of mud
Początkowy projekt spełniający
wymagania funkcjonalne i
biznesowe
Wymagania od projektu po 5 latach
Pożądana ewolucja projektu
Takie prawdziwe…
Jak to ugryźć?
Język
● pozwala się zrozumieć
● pozwala identyfikować rzeczy
● pozwala nazywać zachowania,
relacje itd
Język zależy od
kontekstu
● Nie wszystko złoto co się świeci
choć czasem tak
to jest zamek…
… i to też jest zamek
Wzorce Projektowe
Wszystko ma swoje
miejsce i
przeznaczenie
● wzorce projektowe pomagają w
konkretnym kontekście
rozwiązać konkretny problem
● wzorce projektowe stanowią
building blocki aplikacji
SOLID
● jest ważny
Dependency inversion - inversion of control
CQS
Style Architektoniczne
Layerd architecture / N-tier architecture
Onion architecture - cebulasta
Hexagonal architecture - Ports and Adapters
Wszystko fajnie tylko co z tego?
Herberto Graca - Explicit Architecture
● https://herbertograca.com/2017/11/16/explicit-architecture-01-ddd-hexag
onal-onion-clean-cqrs-how-i-put-it-all-together/
Explicit Architecture - baza i flow of control
Explicit Architecture - userworld web i cli
Explicit Architecture - Porty i Adaptery
Explicit Architecture - Porty i Adaptery
Explicit Architecture - z CQS
Explicit Architecture - przepływ zależności
Explicit architecure w akcji - overview
Explicit architecure w akcji - component
Explicit architecure w akcji - command handler
Explicit architecure w akcji - porty
Explicit architecure w akcji - infra
Explicit architecure w
akcji - przykład
adaptera
Efekt
Zarządzanie złożonością

More Related Content

Similar to Zarządzanie złożonością

Tasiemski 20 05_10
Tasiemski 20 05_10Tasiemski 20 05_10
Tasiemski 20 05_10Synkreo
 
Tasiemski 20 05_10
Tasiemski 20 05_10Tasiemski 20 05_10
Tasiemski 20 05_10Synkreo
 
Tasiemski 20 05_10
Tasiemski 20 05_10Tasiemski 20 05_10
Tasiemski 20 05_10Synkreo
 
Tasiemski 20 05_10
Tasiemski 20 05_10Tasiemski 20 05_10
Tasiemski 20 05_10Synkreo
 
Tasiemski 20 05_10
Tasiemski 20 05_10Tasiemski 20 05_10
Tasiemski 20 05_10Synkreo
 
Tasiemski 20 05_10
Tasiemski 20 05_10Tasiemski 20 05_10
Tasiemski 20 05_10Synkreo
 
Software house story - od 0 do 20 programistów w dwa lata
Software house story - od 0 do 20 programistów w dwa lataSoftware house story - od 0 do 20 programistów w dwa lata
Software house story - od 0 do 20 programistów w dwa lata
Mateusz Kubiczek
 
PIF - Project Investor Fit
PIF - Project Investor FitPIF - Project Investor Fit
PIF - Project Investor Fit
Sebastian Kwiecien
 
Redesing serwisu Morizon.pl
Redesing serwisu Morizon.plRedesing serwisu Morizon.pl
Redesing serwisu Morizon.pl
3camp
 
Mity, które blokują Twoją karierę
Mity, które blokują Twoją karieręMity, które blokują Twoją karierę
Mity, które blokują Twoją karierę
Piotr Horzycki
 
Lider techniczny charakterystyka bohatera
Lider techniczny   charakterystyka bohateraLider techniczny   charakterystyka bohatera
Lider techniczny charakterystyka bohatera
BNS IT
 
Girls in It - Front-end & Back-end. Jak zacząć
Girls in It - Front-end & Back-end. Jak zacząćGirls in It - Front-end & Back-end. Jak zacząć
Girls in It - Front-end & Back-end. Jak zacząć
monterail
 
TSH - Frontend dla najlepszych
TSH - Frontend dla najlepszychTSH - Frontend dla najlepszych
TSH - Frontend dla najlepszych
The Software House
 
ETI PG - Nowoczesne Technologie Przemysłowe
ETI PG - Nowoczesne Technologie PrzemysłoweETI PG - Nowoczesne Technologie Przemysłowe
ETI PG - Nowoczesne Technologie PrzemysłoweRobert Janeczek
 
Czy technologia w projektach internetowych jest ubogim krewnym kreacji
Czy technologia w projektach internetowych jest ubogim krewnym kreacjiCzy technologia w projektach internetowych jest ubogim krewnym kreacji
Czy technologia w projektach internetowych jest ubogim krewnym kreacji
InternetBeta
 
Paulina Rzymska, Marcin Piotrowski "Playmobile pl case study Polish IA Summit"
Paulina Rzymska, Marcin Piotrowski "Playmobile pl case study Polish IA Summit"Paulina Rzymska, Marcin Piotrowski "Playmobile pl case study Polish IA Summit"
Paulina Rzymska, Marcin Piotrowski "Playmobile pl case study Polish IA Summit"UseLab
 
Redesign Playmobile.pl - Polish IA Summit 2011
Redesign Playmobile.pl - Polish IA Summit 2011Redesign Playmobile.pl - Polish IA Summit 2011
Redesign Playmobile.pl - Polish IA Summit 2011
Paulina Rzymska
 
KrakSpot #13 Jaromir Działo - Działaj globalnie, czyli Topicmarks w dolinie k...
KrakSpot #13 Jaromir Działo - Działaj globalnie, czyli Topicmarks w dolinie k...KrakSpot #13 Jaromir Działo - Działaj globalnie, czyli Topicmarks w dolinie k...
KrakSpot #13 Jaromir Działo - Działaj globalnie, czyli Topicmarks w dolinie k...
Filip Dębowski
 

Similar to Zarządzanie złożonością (20)

Tasiemski 20 05_10
Tasiemski 20 05_10Tasiemski 20 05_10
Tasiemski 20 05_10
 
Tasiemski 20 05_10
Tasiemski 20 05_10Tasiemski 20 05_10
Tasiemski 20 05_10
 
Tasiemski 20 05_10
Tasiemski 20 05_10Tasiemski 20 05_10
Tasiemski 20 05_10
 
Tasiemski 20 05_10
Tasiemski 20 05_10Tasiemski 20 05_10
Tasiemski 20 05_10
 
Tasiemski 20 05_10
Tasiemski 20 05_10Tasiemski 20 05_10
Tasiemski 20 05_10
 
Tasiemski 20 05_10
Tasiemski 20 05_10Tasiemski 20 05_10
Tasiemski 20 05_10
 
8 jaromir dzialo
8 jaromir dzialo8 jaromir dzialo
8 jaromir dzialo
 
Software house story - od 0 do 20 programistów w dwa lata
Software house story - od 0 do 20 programistów w dwa lataSoftware house story - od 0 do 20 programistów w dwa lata
Software house story - od 0 do 20 programistów w dwa lata
 
PIF - Project Investor Fit
PIF - Project Investor FitPIF - Project Investor Fit
PIF - Project Investor Fit
 
Redesing serwisu Morizon.pl
Redesing serwisu Morizon.plRedesing serwisu Morizon.pl
Redesing serwisu Morizon.pl
 
Mity, które blokują Twoją karierę
Mity, które blokują Twoją karieręMity, które blokują Twoją karierę
Mity, które blokują Twoją karierę
 
Lider techniczny charakterystyka bohatera
Lider techniczny   charakterystyka bohateraLider techniczny   charakterystyka bohatera
Lider techniczny charakterystyka bohatera
 
Girls in It - Front-end & Back-end. Jak zacząć
Girls in It - Front-end & Back-end. Jak zacząćGirls in It - Front-end & Back-end. Jak zacząć
Girls in It - Front-end & Back-end. Jak zacząć
 
TSH - Frontend dla najlepszych
TSH - Frontend dla najlepszychTSH - Frontend dla najlepszych
TSH - Frontend dla najlepszych
 
ETI PG - Nowoczesne Technologie Przemysłowe
ETI PG - Nowoczesne Technologie PrzemysłoweETI PG - Nowoczesne Technologie Przemysłowe
ETI PG - Nowoczesne Technologie Przemysłowe
 
Projekt eBiznes
Projekt eBiznesProjekt eBiznes
Projekt eBiznes
 
Czy technologia w projektach internetowych jest ubogim krewnym kreacji
Czy technologia w projektach internetowych jest ubogim krewnym kreacjiCzy technologia w projektach internetowych jest ubogim krewnym kreacji
Czy technologia w projektach internetowych jest ubogim krewnym kreacji
 
Paulina Rzymska, Marcin Piotrowski "Playmobile pl case study Polish IA Summit"
Paulina Rzymska, Marcin Piotrowski "Playmobile pl case study Polish IA Summit"Paulina Rzymska, Marcin Piotrowski "Playmobile pl case study Polish IA Summit"
Paulina Rzymska, Marcin Piotrowski "Playmobile pl case study Polish IA Summit"
 
Redesign Playmobile.pl - Polish IA Summit 2011
Redesign Playmobile.pl - Polish IA Summit 2011Redesign Playmobile.pl - Polish IA Summit 2011
Redesign Playmobile.pl - Polish IA Summit 2011
 
KrakSpot #13 Jaromir Działo - Działaj globalnie, czyli Topicmarks w dolinie k...
KrakSpot #13 Jaromir Działo - Działaj globalnie, czyli Topicmarks w dolinie k...KrakSpot #13 Jaromir Działo - Działaj globalnie, czyli Topicmarks w dolinie k...
KrakSpot #13 Jaromir Działo - Działaj globalnie, czyli Topicmarks w dolinie k...
 

More from PHPstokPHPstok

Jak ograniczyć używanie tablic w PHP.pptx
Jak ograniczyć używanie tablic w PHP.pptxJak ograniczyć używanie tablic w PHP.pptx
Jak ograniczyć używanie tablic w PHP.pptx
PHPstokPHPstok
 
Blaski i cienie pracy Project Managera.pptx
Blaski i cienie pracy Project Managera.pptxBlaski i cienie pracy Project Managera.pptx
Blaski i cienie pracy Project Managera.pptx
PHPstokPHPstok
 
Refaktoryzacja
RefaktoryzacjaRefaktoryzacja
Refaktoryzacja
PHPstokPHPstok
 
PHP 8.1
PHP 8.1PHP 8.1
Clean Code
Clean CodeClean Code
Clean Code
PHPstokPHPstok
 
Testy mutacyjne
Testy mutacyjneTesty mutacyjne
Testy mutacyjne
PHPstokPHPstok
 
Najczęstsze błędy początkujących programistów PHP
Najczęstsze błędy początkujących programistów PHPNajczęstsze błędy początkujących programistów PHP
Najczęstsze błędy początkujących programistów PHP
PHPstokPHPstok
 
Bezpieczeństwo aplikacji webowych
Bezpieczeństwo aplikacji webowychBezpieczeństwo aplikacji webowych
Bezpieczeństwo aplikacji webowych
PHPstokPHPstok
 
Wzorce projektowe w praktyce
Wzorce projektowe w praktyceWzorce projektowe w praktyce
Wzorce projektowe w praktyce
PHPstokPHPstok
 
Sztuka samodoskonalenia programisty
Sztuka samodoskonalenia programistySztuka samodoskonalenia programisty
Sztuka samodoskonalenia programisty
PHPstokPHPstok
 
Testy jednostkowe - PHPUnit
Testy jednostkowe - PHPUnitTesty jednostkowe - PHPUnit
Testy jednostkowe - PHPUnit
PHPstokPHPstok
 
Docker
DockerDocker
SOLID
SOLIDSOLID
PSR czyli dobre praktyki programistyczne
PSR czyli dobre praktyki programistycznePSR czyli dobre praktyki programistyczne
PSR czyli dobre praktyki programistyczne
PHPstokPHPstok
 

More from PHPstokPHPstok (14)

Jak ograniczyć używanie tablic w PHP.pptx
Jak ograniczyć używanie tablic w PHP.pptxJak ograniczyć używanie tablic w PHP.pptx
Jak ograniczyć używanie tablic w PHP.pptx
 
Blaski i cienie pracy Project Managera.pptx
Blaski i cienie pracy Project Managera.pptxBlaski i cienie pracy Project Managera.pptx
Blaski i cienie pracy Project Managera.pptx
 
Refaktoryzacja
RefaktoryzacjaRefaktoryzacja
Refaktoryzacja
 
PHP 8.1
PHP 8.1PHP 8.1
PHP 8.1
 
Clean Code
Clean CodeClean Code
Clean Code
 
Testy mutacyjne
Testy mutacyjneTesty mutacyjne
Testy mutacyjne
 
Najczęstsze błędy początkujących programistów PHP
Najczęstsze błędy początkujących programistów PHPNajczęstsze błędy początkujących programistów PHP
Najczęstsze błędy początkujących programistów PHP
 
Bezpieczeństwo aplikacji webowych
Bezpieczeństwo aplikacji webowychBezpieczeństwo aplikacji webowych
Bezpieczeństwo aplikacji webowych
 
Wzorce projektowe w praktyce
Wzorce projektowe w praktyceWzorce projektowe w praktyce
Wzorce projektowe w praktyce
 
Sztuka samodoskonalenia programisty
Sztuka samodoskonalenia programistySztuka samodoskonalenia programisty
Sztuka samodoskonalenia programisty
 
Testy jednostkowe - PHPUnit
Testy jednostkowe - PHPUnitTesty jednostkowe - PHPUnit
Testy jednostkowe - PHPUnit
 
Docker
DockerDocker
Docker
 
SOLID
SOLIDSOLID
SOLID
 
PSR czyli dobre praktyki programistyczne
PSR czyli dobre praktyki programistycznePSR czyli dobre praktyki programistyczne
PSR czyli dobre praktyki programistyczne
 

Zarządzanie złożonością