Python optymalizacja, refactoring i tuning wydajności
Czas trwania szkolenia:1 dni (8h)
Kod kursu:PYTHON/OPT
Poziom zaawansowania:
O szkoleniu Python optymalizacja, refactoring i tuning wydajności
W cenie otrzymasz:
- Materiały szkoleniowe
- Certyfikat ukończenia szkolenia
- W przypadku szkolenia w trybie stacjonarnym zapewnimy Ci również lunch oraz sprzęt niezbędny do nauki
Dla kogo?
- Inżynierów oporgramowania i programistów
- Inżynierów jakości i testerów
- Inżynierów wydajności
Wymagania
- Umiejętność wytwarzania oprogramowania w języku Python
- Znajomość obiektowego paradygmatu wytwarzania oprogrogramowania
- Umiejętność biegłego posługiwania się komputerem
- Umiejętność korzystania z konsoli systemu operacyjnego
- Znajomość podstawowych koncepcji związanych z infrastrukturą
- Wiedza o procesach obejmujących wytwarzanie oprogramowania
- Uczestnictwo w co najmniej jednym projekcie związanym z wytwarzaniem oprogramowania
Zalety
- Praktyka przed teorią - wszystkie szkolenia technologiczne prowadzone są w formie warsztatowej. Konieczna teoria jest wyjaśniana na przykładzie praktycznych zadań
- Konkretne umiejętności - w ramach każdego szkolenia rozwijamy praktyczne umiejętności związane z daną technologią i tematyką
- Nauka z praktykami - wszyscy trenerzy na co dzień pracują w projektach, gwarantuje to dostęp do eksperckiej wiedzy i praktycznego know-how
Cele szkolenia
- Poznanie procesu optymalizacji kodu
- Identyfikacja wąskich gardeł w kodzie
- Poznanie procesu i technik refaktoringu
- Poznanie procesu i technik tuningu wydajnościowego
- Wprowadzenie do tematyki współbieżności
Program
Wprowadzenie
- Python 3.11 i projekt Faster CPython
- Alternatywne wersje kompilatora/interpretera
- Type Annotation
- Kompilacja kodu Python do C shared objects (mypyc, cython, cmodules)
Rodzaje testów na przykładach
- Analiza statyczna
- Obciążeniowe
Refaktoring
- Środowisko IDE (PyCharm) i jego możliwości
- Podstawowe opcje refactoringowe
- Zaawansowane opcje refactoringowe
- Refactoring w środowiku bez testów
- Praca z legacy code
- Refactoring cudzego kodu
- Dobre praktyki
- Proces Code Review
Optymalizacja
- Pojęcia złożoności kodu (pamięciowa, obliczeniowa, cyklomatyczna, kognitywna)
- Definicja długu technicznego
- Ręczna identyfikacja złożonego kodu
- Automatyczna identyfikacja złożonego kodu
- Silosy kompetencyjne vs. Collective code ownership
- Pojęcie emerging architecture
Tuning wydajnościowy
- Techniki pomiaru wydajności kodu
- Microbenchmarking i jego pułapki
- Profiling kodu i wizualizacja wyników
- Identyfikacja wąskich gardeł
- Testy obciążeniowe
- Automatyzacja testów wydajnościowych w procesie CI/CD
Wprowadzenie do współbieżności
- GIL - Global Interpreter Lock
- Programowanie wieloprocesowe
- Programowanie wielowątkowe
- Programowanie asynchroniczne