PHP – Wydajność i cache
Warsztat uczy systematycznego podejścia do wydajności — nie zgadywania, lecz mierzenia.
Idealny dla zespołów, które…
Solidny backend i architektura — wzorce sprawdzone w środowisku produkcyjnym.
Profilowania aplikacji PHP przy pomocy Xdebug profiler — znajdowanie wąskich gardeł zamiast zgadywania
Identyfikacji i naprawy N+1 queries — najczęstszego problemu wydajnościowego w aplikacjach PHP
Optymalizacji zapytań SQL — EXPLAIN ANALYZE, indeksy, selektywna denormalizacja
Cache’owania na poziomie aplikacji — Symfony Cache / PSR-6, Redis jako backend
Strategii invalidacji cache’a — TTL, tag-based, event-driven
Cache’owania HTTP — Cache-Control, ETag, Last-Modified, koncepcja reverse proxy
Read modelu — denormalizacja danych pod wydajne odczyty, synchronizacja przez zdarzenia domenowe
Co warto wiedzieć przed startem
- PHP 8.3+: architektura warstwowa, serwisy, repozytoria
- Testy PHPUnit: unit i integracyjne
- MySQL: zapytania SQL, PDO lub Doctrine DBAL
- Docker i Composer
Co konkretnie robimy
Dzień 1 · Etap 1: Profilowanie — znajdź wąskie gardło
- · Xdebug profiler — konfiguracja, generowanie profili
- · Czytanie profili — identyfikacja hot paths i najwolniejszych ścieżek
- · Metryki bazodanowe — EXPLAIN ANALYZE, slow query log
- · Benchmarking — pomiar czasu odpowiedzi (baseline do porównań)
- · Efekt: Uczestnicy mają baseline metryk i wiedzą, gdzie są wąskie gardła
Dzień 1 · Etap 2: Optymalizacja zapytań
- · N+1 queries — identyfikacja w Doctrine DBAL (pętla z zapytaniem wewnątrz pętli), batch loading
- · Indeksy — kiedy pomagają, kiedy nie, composite indexes
- · Query optimization — przepisywanie wolnych zapytań, selektywna denormalizacja
- · Pomiar po optymalizacji — porównanie z baseline
- · Efekt: Najczęstsze problemy bazodanowe zidentyfikowane i naprawione z mierzalną poprawą
Dzień 2 · Etap 3: Strategie cache’owania
- · Symfony Cache / PSR-6 — konfiguracja, adaptery (filesystem, Redis)
- · Cache patterns — cache-aside, read-through
- · Identyfikacja hot data vs cold data
- · Praktyka: cache’owanie listingu produktów i danych katalogowych
- · TTL — proste, ale ryzykowne (stale data)
- · Tag-based invalidation — Symfony Cache tags
- · Event-driven invalidation — cache invalidacja na zdarzenie domenowe
- · Cache-Control, ETag, Last-Modified — nagłówki HTTP
- · Koncepcja reverse proxy (Varnish/Nginx) — konfiguracja Cache-Control w Symfony Response
- · CDN — kiedy i co delegować
- · Efekt: Aplikacja ma cache na trzech poziomach; invalidacja działa poprawnie
Dzień 2 · Etap 4: Read model i podsumowanie
- · Read model — denormalizacja danych pod wydajne odczyty
- · Kiedy read model ma sens — heavy reads vs light reads
- · Implementacja: osobna tabela zoptymalizowana pod listingi
- · Synchronizacja read modelu przez zdarzenia domenowe
- · Pomiar końcowy — porównanie z baseline z etapu 1
- · Retrospektywa — co dało największy efekt, co było over-engineering
- · Efekt: Uczestnicy mają kompletny zestaw narzędzi do diagnozowania i naprawiania problemów wydajnościowych
Od briefu do retro w 30 dniach.
Brief i diagnoza
Rozmowa z liderem zespołu + krótka ankieta dla uczestników. Określamy cele, gap, kontekst.
Modyfikacja programu
Dostosowujemy moduły, case studies i przykłady kodu pod Twój stack. Akceptacja w 5 dni.
Warsztat
Sesje z trenerem, hands-on, code review. Mentor dostępny też pomiędzy sesjami.
Retro + raport
Raport z efektami dla zespołu i lidera. 30 dni konsultacji w cenie.
Wyślij brief. Odezwiemy się w 1 dzień.
Po krótkim briefie przygotujemy program i wycenę. Bez zobowiązań — to tylko punkt wyjścia do rozmowy.
Dziękujemy!
Odezwiemy się w ciągu 1 dnia roboczego.
Inne programy dla zespołów
Zobacz wszystkie →C# – podstawy programowania
Solidny backend i architektura — wzorce sprawdzone w środowisku produkcyjnym.
Entity Framework 6
Solidny backend i architektura — wzorce sprawdzone w środowisku produkcyjnym.
GO
Solidny backend i architektura — wzorce sprawdzone w środowisku produkcyjnym.