5. Tworzenie i optymalizacja wydajności systemów¶
Teoretyczne podstawy
Złożoność obliczeniowa
Złożoność pamięciowa
Złożoność cyklometryczna
Dług techniczny
Praktyka
Spaghetti code
Zależności w kodzie i między modułami
S.O.L.I.D.
TDD: test first vs test last development
Czym w praktyce jest dług techniczny
Ekosystem narzędziowy
Micro-benchmarking
Problematyka
Najczęstsze błędy
Normalizacja wyników
Porównywanie wyników
Wyciąganie wniosków
Refactoring legacy systemów
Jak rozpocząć refactoring?
Strategie refactoringu
Czy testy są konieczne?
Jakość kodu
SonarQube i SonarLint
Wyciąganie wniosków z analizy statycznej
Quality Gates
Mierzenie pokrycia testami
Testy mutacyjne
Microservices
Co to są mikrousługi?
Idea stojąca za mikrousługami
Czy mikrousługi są dobre dla mojego projektu?
Service Discovery i Service Registry
Heart Beat
Distributed Logging i Log Spooling
API Gateway
Najczęstsze błędy
Wdrożenia
Strategie wdrożeń
Unikanie downtime
Wersjonowanie API
Kompatybilność API