SlideShare a Scribd company logo
Working with legacy Code
Here comes the wave
@dpokusa
"Legacy code" often differs from its suggested
alternative by actually working and scaling.
— Bjarne Stroustrup, creator of C++
CAN IT BE FUN?
CAN IT BE CHOSEN INSTEAD OF GREENFIELD?
ISSUES
SSO MAILDB
WEB
ISSUES
SSO MAILDB
WEB
ISSUES
SSO MAILDB
WEB
GET /issues
SELECT * FROM Issues;
REVOLUTION
REVOLUTION
ISSUES
SSO MAILDB
WEB
GET /issues
SELECT * FROM Issues;
ISSUES
SSO MAILDB
WEB
GET /v1/issues
GET /v2/issues
ISSUES v2
ISSUES
SSO MAILDB
WEB
GET /v1/issues
GET /v2/issues
ISSUES
SSO MAILDB
WEB
GET /issues?api=v2
REVOLUTIONEVOLUTION
Testability Large features
Small features
Infrastructure
Upgrade libraries
Scout rule
Security
ISSUES
SSO MAILDB
WEB
ADDING MultitenanCY
ISOLATION
SHARING
VS
ISSUES
SSO
MAIL
DB
WEB
ISSUES
DB
WEB
INSTANCE PER TENANT
WEB
ISSUESISSUES
SSO
MAIL
DB
WEB
SHARDED MULTITENANT
ISSUES
SSO
MAIL
DB
WEB
DB
DATABASE PER TENANT
ISSUES
DB
WEB
DB
DATABASE PER TENANT
ISSUES
TENANT 2
DATABASE PER TENANT
TENANT 1
ISSUES
TENANT 2
DATABASE PER TENANT
TENANT 1
tenant1.example.com
tenant2.example.com
X-Tenant
ISSUES
DB
DB
validation SSO
Tenant + Token
operation
Db query Connection pool
validation SSO
Tenant + Token
operation
Db query Connection pool
!!!!
validation SSO
Tenant + Token
operation
Db query Connection pool
!!!!
STRANGLER
ISSUES
SSO MAILDB
WEB
EXTRACTING FEATURES
ISSUES
SSO MAILDB
WEB LABELS
ISSUES
SSO MAILDB
WEB LABELS
QUEUE
BULKHEAD
ISSUES
SSO MAILDB
WEB
ADD TIMEZONES
NEW DATE();
LocalDateTime.now();
Unify & add new field!
Evolution!!
Decision Log
Decision Log
1.ISSUE
2.DECISION
3.STATUS
4.ASSUMPTIONS
5.ALTERNATIVES
6.ARGUMENT
7.IMPLICATIONS
8.NOTES
software-empathy.pl
spreadit.pl
@dpokusa
Q&A
@dpokusa
Source: http://themetapicture.com/the-life-of-a-software-engineer/
@dpokusa

More Related Content

Similar to Daniel Pokusa - Praca z kodem zastanym- nadchodzi wielka fala

Michał Dec - Quality in Clouds
Michał Dec - Quality in CloudsMichał Dec - Quality in Clouds
Michał Dec - Quality in Clouds
kraqa
 
Visual Basic .NET. Księga eksperta
Visual Basic .NET. Księga ekspertaVisual Basic .NET. Księga eksperta
Visual Basic .NET. Księga eksperta
Wydawnictwo Helion
 
Nowości Windows Azure
Nowości Windows AzureNowości Windows Azure
Nowości Windows Azure
pbubacz
 
SQL Server + docker - pierwsze kroki
SQL Server + docker - pierwsze krokiSQL Server + docker - pierwsze kroki
SQL Server + docker - pierwsze kroki
Bartosz Ratajczyk
 
Mongodb with Rails
Mongodb with RailsMongodb with Rails
Mongodb with Rails
Sebastian Nowak
 
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
The Software House
 
Migracja I Integracja Bazy
Migracja I Integracja BazyMigracja I Integracja Bazy
Migracja I Integracja BazyPrzemysław ...
 
JavaEE + OSGi
JavaEE + OSGiJavaEE + OSGi
JavaEE + OSGi
opalaartur
 
GET.NET - Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...
GET.NET -  Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...GET.NET -  Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...
GET.NET - Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...
Michal Furmankiewicz
 
PLNOG20 - Krzysztof Mazepa - Transformacja poprzez innowacje
PLNOG20 - Krzysztof Mazepa - Transformacja poprzez innowacjePLNOG20 - Krzysztof Mazepa - Transformacja poprzez innowacje
PLNOG20 - Krzysztof Mazepa - Transformacja poprzez innowacje
PROIDEA
 
PLNOG19 - Krzysztof Banel - Nowe modele bezpieczeństwa w sieciach SDN
PLNOG19 - Krzysztof Banel - Nowe modele bezpieczeństwa w sieciach SDNPLNOG19 - Krzysztof Banel - Nowe modele bezpieczeństwa w sieciach SDN
PLNOG19 - Krzysztof Banel - Nowe modele bezpieczeństwa w sieciach SDN
PROIDEA
 
WordUp Łódź - Bedrock - jak przyspieszyć development
WordUp Łódź - Bedrock - jak przyspieszyć developmentWordUp Łódź - Bedrock - jak przyspieszyć development
WordUp Łódź - Bedrock - jak przyspieszyć development
InterSynergy
 
PLNOG 18 - Marcin Motylski - Budowa wirtualnego Data Center
PLNOG 18 - Marcin Motylski - Budowa wirtualnego Data CenterPLNOG 18 - Marcin Motylski - Budowa wirtualnego Data Center
PLNOG 18 - Marcin Motylski - Budowa wirtualnego Data Center
PROIDEA
 
Wersjonowanie kodu. Dobre praktyki na przykładzie przejścia z CVS na GITa
Wersjonowanie kodu. Dobre praktyki na przykładzie przejścia z CVS na GITaWersjonowanie kodu. Dobre praktyki na przykładzie przejścia z CVS na GITa
Wersjonowanie kodu. Dobre praktyki na przykładzie przejścia z CVS na GITa
marekmisztal
 
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...Tomasz Kopacz
 
[CareerCon] Wirtualizacja (PL)
[CareerCon] Wirtualizacja (PL)[CareerCon] Wirtualizacja (PL)
[CareerCon] Wirtualizacja (PL)
Jaroslaw Sobel
 
Wordpress i nagłówki
Wordpress i nagłówkiWordpress i nagłówki
Wordpress i nagłówki
Arkadiusz Stęplowski
 
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...Tomasz Kopacz
 
Marcin Motylski - Globalna Chmura Obliczeniowa
Marcin Motylski - Globalna Chmura ObliczeniowaMarcin Motylski - Globalna Chmura Obliczeniowa
Marcin Motylski - Globalna Chmura Obliczeniowa
PROIDEA
 

Similar to Daniel Pokusa - Praca z kodem zastanym- nadchodzi wielka fala (20)

Michał Dec - Quality in Clouds
Michał Dec - Quality in CloudsMichał Dec - Quality in Clouds
Michał Dec - Quality in Clouds
 
Visual Basic .NET. Księga eksperta
Visual Basic .NET. Księga ekspertaVisual Basic .NET. Księga eksperta
Visual Basic .NET. Księga eksperta
 
Nowości Windows Azure
Nowości Windows AzureNowości Windows Azure
Nowości Windows Azure
 
SQL Server + docker - pierwsze kroki
SQL Server + docker - pierwsze krokiSQL Server + docker - pierwsze kroki
SQL Server + docker - pierwsze kroki
 
Mongodb with Rails
Mongodb with RailsMongodb with Rails
Mongodb with Rails
 
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
 
Migracja I Integracja Bazy
Migracja I Integracja BazyMigracja I Integracja Bazy
Migracja I Integracja Bazy
 
JavaEE + OSGi
JavaEE + OSGiJavaEE + OSGi
JavaEE + OSGi
 
GET.NET - Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...
GET.NET -  Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...GET.NET -  Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...
GET.NET - Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...
 
PLNOG20 - Krzysztof Mazepa - Transformacja poprzez innowacje
PLNOG20 - Krzysztof Mazepa - Transformacja poprzez innowacjePLNOG20 - Krzysztof Mazepa - Transformacja poprzez innowacje
PLNOG20 - Krzysztof Mazepa - Transformacja poprzez innowacje
 
PLNOG19 - Krzysztof Banel - Nowe modele bezpieczeństwa w sieciach SDN
PLNOG19 - Krzysztof Banel - Nowe modele bezpieczeństwa w sieciach SDNPLNOG19 - Krzysztof Banel - Nowe modele bezpieczeństwa w sieciach SDN
PLNOG19 - Krzysztof Banel - Nowe modele bezpieczeństwa w sieciach SDN
 
WordUp Łódź - Bedrock - jak przyspieszyć development
WordUp Łódź - Bedrock - jak przyspieszyć developmentWordUp Łódź - Bedrock - jak przyspieszyć development
WordUp Łódź - Bedrock - jak przyspieszyć development
 
PLNOG 18 - Marcin Motylski - Budowa wirtualnego Data Center
PLNOG 18 - Marcin Motylski - Budowa wirtualnego Data CenterPLNOG 18 - Marcin Motylski - Budowa wirtualnego Data Center
PLNOG 18 - Marcin Motylski - Budowa wirtualnego Data Center
 
Html5 i css3
Html5 i css3Html5 i css3
Html5 i css3
 
Wersjonowanie kodu. Dobre praktyki na przykładzie przejścia z CVS na GITa
Wersjonowanie kodu. Dobre praktyki na przykładzie przejścia z CVS na GITaWersjonowanie kodu. Dobre praktyki na przykładzie przejścia z CVS na GITa
Wersjonowanie kodu. Dobre praktyki na przykładzie przejścia z CVS na GITa
 
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...
 
[CareerCon] Wirtualizacja (PL)
[CareerCon] Wirtualizacja (PL)[CareerCon] Wirtualizacja (PL)
[CareerCon] Wirtualizacja (PL)
 
Wordpress i nagłówki
Wordpress i nagłówkiWordpress i nagłówki
Wordpress i nagłówki
 
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...
 
Marcin Motylski - Globalna Chmura Obliczeniowa
Marcin Motylski - Globalna Chmura ObliczeniowaMarcin Motylski - Globalna Chmura Obliczeniowa
Marcin Motylski - Globalna Chmura Obliczeniowa
 

More from SegFaultConf

Wojciech Rząsa - Przewidywanie zmian wydajności aplikacji rozproszonych
Wojciech Rząsa - Przewidywanie zmian wydajności aplikacji rozproszonychWojciech Rząsa - Przewidywanie zmian wydajności aplikacji rozproszonych
Wojciech Rząsa - Przewidywanie zmian wydajności aplikacji rozproszonych
SegFaultConf
 
Tomasz Nurkiewicz - Programowanie reaktywne: czego się nauczyłem
Tomasz Nurkiewicz - Programowanie reaktywne: czego się nauczyłemTomasz Nurkiewicz - Programowanie reaktywne: czego się nauczyłem
Tomasz Nurkiewicz - Programowanie reaktywne: czego się nauczyłem
SegFaultConf
 
Zbyszko Papierski - Communication patterns in carbon-based networks
Zbyszko Papierski - Communication patterns in carbon-based networksZbyszko Papierski - Communication patterns in carbon-based networks
Zbyszko Papierski - Communication patterns in carbon-based networks
SegFaultConf
 
Andrzej Ludwikowski - Event Sourcing - co może pójść nie tak?
Andrzej Ludwikowski -  Event Sourcing - co może pójść nie tak?Andrzej Ludwikowski -  Event Sourcing - co może pójść nie tak?
Andrzej Ludwikowski - Event Sourcing - co może pójść nie tak?
SegFaultConf
 
Dominik Boszko - Krocząc doliną ciemności mikroserwisów się nie ulęknę
Dominik Boszko - Krocząc doliną ciemności mikroserwisów się nie ulęknęDominik Boszko - Krocząc doliną ciemności mikroserwisów się nie ulęknę
Dominik Boszko - Krocząc doliną ciemności mikroserwisów się nie ulęknę
SegFaultConf
 
Krzysztof Kaczmarek - 10 rzeczy, które chciałbym wiedzieć 10 lat temu
Krzysztof Kaczmarek - 10 rzeczy, które chciałbym wiedzieć 10 lat temuKrzysztof Kaczmarek - 10 rzeczy, które chciałbym wiedzieć 10 lat temu
Krzysztof Kaczmarek - 10 rzeczy, które chciałbym wiedzieć 10 lat temu
SegFaultConf
 
Jan Pustelnik - Curry-Howard w praktyce
Jan Pustelnik - Curry-Howard w praktyceJan Pustelnik - Curry-Howard w praktyce
Jan Pustelnik - Curry-Howard w praktyce
SegFaultConf
 
Robert Pankowecki - Czy sprzedawcy SQLowych baz nas oszukali?
Robert Pankowecki - Czy sprzedawcy SQLowych baz nas oszukali?Robert Pankowecki - Czy sprzedawcy SQLowych baz nas oszukali?
Robert Pankowecki - Czy sprzedawcy SQLowych baz nas oszukali?
SegFaultConf
 
Marcin Grzejszczak - Contract Tests in the Enterprise
Marcin Grzejszczak - Contract Tests in the EnterpriseMarcin Grzejszczak - Contract Tests in the Enterprise
Marcin Grzejszczak - Contract Tests in the Enterprise
SegFaultConf
 

More from SegFaultConf (9)

Wojciech Rząsa - Przewidywanie zmian wydajności aplikacji rozproszonych
Wojciech Rząsa - Przewidywanie zmian wydajności aplikacji rozproszonychWojciech Rząsa - Przewidywanie zmian wydajności aplikacji rozproszonych
Wojciech Rząsa - Przewidywanie zmian wydajności aplikacji rozproszonych
 
Tomasz Nurkiewicz - Programowanie reaktywne: czego się nauczyłem
Tomasz Nurkiewicz - Programowanie reaktywne: czego się nauczyłemTomasz Nurkiewicz - Programowanie reaktywne: czego się nauczyłem
Tomasz Nurkiewicz - Programowanie reaktywne: czego się nauczyłem
 
Zbyszko Papierski - Communication patterns in carbon-based networks
Zbyszko Papierski - Communication patterns in carbon-based networksZbyszko Papierski - Communication patterns in carbon-based networks
Zbyszko Papierski - Communication patterns in carbon-based networks
 
Andrzej Ludwikowski - Event Sourcing - co może pójść nie tak?
Andrzej Ludwikowski -  Event Sourcing - co może pójść nie tak?Andrzej Ludwikowski -  Event Sourcing - co może pójść nie tak?
Andrzej Ludwikowski - Event Sourcing - co może pójść nie tak?
 
Dominik Boszko - Krocząc doliną ciemności mikroserwisów się nie ulęknę
Dominik Boszko - Krocząc doliną ciemności mikroserwisów się nie ulęknęDominik Boszko - Krocząc doliną ciemności mikroserwisów się nie ulęknę
Dominik Boszko - Krocząc doliną ciemności mikroserwisów się nie ulęknę
 
Krzysztof Kaczmarek - 10 rzeczy, które chciałbym wiedzieć 10 lat temu
Krzysztof Kaczmarek - 10 rzeczy, które chciałbym wiedzieć 10 lat temuKrzysztof Kaczmarek - 10 rzeczy, które chciałbym wiedzieć 10 lat temu
Krzysztof Kaczmarek - 10 rzeczy, które chciałbym wiedzieć 10 lat temu
 
Jan Pustelnik - Curry-Howard w praktyce
Jan Pustelnik - Curry-Howard w praktyceJan Pustelnik - Curry-Howard w praktyce
Jan Pustelnik - Curry-Howard w praktyce
 
Robert Pankowecki - Czy sprzedawcy SQLowych baz nas oszukali?
Robert Pankowecki - Czy sprzedawcy SQLowych baz nas oszukali?Robert Pankowecki - Czy sprzedawcy SQLowych baz nas oszukali?
Robert Pankowecki - Czy sprzedawcy SQLowych baz nas oszukali?
 
Marcin Grzejszczak - Contract Tests in the Enterprise
Marcin Grzejszczak - Contract Tests in the EnterpriseMarcin Grzejszczak - Contract Tests in the Enterprise
Marcin Grzejszczak - Contract Tests in the Enterprise
 

Daniel Pokusa - Praca z kodem zastanym- nadchodzi wielka fala