Plan Szkolenia
Dzień 1 — Solidne podstawy Pythona i narzędzia
Nowoczesne funkcje Pythona i typowanie
- Podstawy typowania, typy generyczne, protokoły i TypeGuard
- Klasy danych, zamrożone klasy danych i przegląd attrs
- Dopasowywanie wzorców (PEP 634+) i idiomatyczne użycie
Jakość kodu i narzędzia
- Formatowanie kodu i lintowanie: black, isort, flake8, ruff
- Statyczne sprawdzanie typów za pomocą MyPy i pyright
- Hooki pre-commit i przepływy pracy programisty
Zarządzanie projektem i pakowanie
- Zarządzanie zależnościami za pomocą Poetry i środowisk wirtualnych
- Struktura pakietu, punkty wejścia i najlepsze praktyki wersjonowania
- Budowanie i publikowanie pakietów w PyPI i prywatnych repozytoriach
Dzień 2 — Wzorce projektowe i praktyki architektoniczne
Wzorce projektowe w Pythonie
- Wzorce kreacyjne: Fabryka, Budowniczy, Singleton (warianty pythoniczne)
- Wzorce strukturalne: Adapter, Fasada, Dekorator, Pełnomocnik
- Wzorce behawioralne: Strategia, Obserwator, Polecenie
Zasady architektoniczne
- Zasady SOLID w zastosowaniu do baz kodu Python
- Architektura heksagonalna/czysta i granice
- Wzorce wstrzykiwania zależności i zarządzanie konfiguracją
Modularność i ponowne wykorzystanie kodu
- Projektowanie kodu bibliotecznego w porównaniu z kodem aplikacji
- API, stabilne interfejsy i wersjonowanie semantyczne
- Obsługa konfiguracji, sekretów i ustawień specyficznych dla środowiska
Dzień 3 — Współbieżność, asynchroniczne IO i wydajność
Współbieżność i równoległość
- Podstawy wątków i implikacje GIL
- Multiprocessing i pule procesów dla zadań obciążających CPU
- Kiedy stosować concurrent.futures, a kiedy multiprocessing
Programowanie asynchroniczne z asyncio
- Wzorce async/await, pętla zdarzeń i anulowanie
- Projektowanie bibliotek asynchronicznych i współdziałanie z kodem synchronicznym
- Wzorce związane z wejściem/wyjściem, ciśnienie wsteczne i ograniczanie szybkości
Profilowanie i optymalizacja
- Narzędzia profilujące: cProfile, pyinstrument, perf, memory_profiler
- Optymalizacja ścieżek krytycznych i stosowanie rozszerzeń C/Numba tam, gdzie to stosowne
- Pomiar opóźnień, przepustowości i wykorzystania zasobów
Dzień 4 — Testowanie, CI/CD, obserwowalność i wdrażanie
Strategie testowania i automatyzacja
- Testy jednostkowe i fixtures z pytest; organizacja testów
- Testowanie oparte na właściwościach z Hypothesis i testowanie kontraktowe
- Mockowanie, monkeypatching i testowanie kodu asynchronicznego
CI/CD, wydania i monitorowanie
- Integracja testów i bramek jakości z GitHub Actions/GitLab CI
- Budowanie odtwarzalnych kontenerów za pomocą Dockera i budowania wieloetapowego
- Obserwowalność aplikacji: logowanie strukturalne, metryki Prometheusa i śledzenie
Bezpieczeństwo, wzmacnianie i najlepsze praktyki
- Audyt zależności, podstawy SBOM i skanowanie podatności
- Bezpieczne praktyki kodowania w zakresie walidacji danych wejściowych i zarządzania sekretami
- Wzmacnianie środowiska uruchomieniowego: limity zasobów, uprawnienia użytkowników i bezpieczeństwo kontenerów
Projekt końcowy i przegląd
- Laboratorium zespołowe: zaprojektowanie i implementacja małej usługi z wykorzystaniem wzorców z kursu
- Testowanie, sprawdzanie typów, pakowanie i potok CI dla projektu
- Przegląd końcowy, krytyka kodu i plan możliwych ulepszeń
Podsumowanie i kolejne kroki
Wymagania
- Duże doświadczenie w programowaniu w Pythonie na poziomie średnio zaawansowanym
- Znajomość programowania obiektowego i podstaw testowania
- Doświadczenie w korzystaniu z wiersza poleceń i systemu Git
Grupa docelowa
- Starszy programista Python
- Inżynierowie oprogramowania odpowiedzialni za jakość kodu i architekturę w Pythonie
- Liderzy techniczni oraz inżynierowie MLOps/DevOps pracujący z bazami kodu Python
Wybierz dostępny termin kursu
- Formularz Zdalne
- Język polski
- Szkolenie Kursy otwarte
- Data rozpoczęcia 2027-01-11
- Czas trwania 4 dni (28 godzin)
Cena netto za uczestnika
Opinie uczestników (3)
Zajeczia praktyczne związane z treścią naprawdę pomagają lepiej zrozumieć każdy temat. Ponadto, styl rozpoczęcia zajęć od wykładu i kontynuowania praktycznymi ćwiczeniami jest dobry i pomocny do połączenia się z wcześniejszym wykładem.
Nazeera Mohamad - Ministry of Science, Technology and Innovation
Szkolenie - Introduction to Data Science and AI using Python
Przetłumaczone przez sztuczną inteligencję
Przygotowanie materiałów i kodu (z komentarzami). Spójność procesu nauczania i progresji tematów. Przygotowanie wykładowcy.
Piotr - ArcelorMittal
Szkolenie - Machine Learning with Python – 4 Days
Instruktor był bardzo dostępny, aby odpowiedzieć na wszystkie rodzaje pytań, które zadawałem.
Caterina - Stamtech
Szkolenie - Developing APIs with Python and FastAPI
Przetłumaczone przez sztuczną inteligencję