Kursplan
Dag 1 — Robusta Python-grundläggande och verktyg
Modern Python-funktioner och typer
- Typernas grunder, generics, Protocols, och TypeGuard
- Dataclasses, frozen dataclasses, och attrs-översikt
- Mönstermatchning (PEP 634+) och idiomatisk användning
Kodkvalitet och verktyg
- Kodformaterare och linter: black, isort, flake8, ruff
- Statisk typkontroll med MyPy och pyright
- Förcommit hooks och utvecklararbetsflöden
Projektledning och paketering
- Beroendehantering med Poetry och virtuella miljöer
- Paketalayout, inmatningspunkter och versioneringens bästa praxis
- Bygga och publicera paket till PyPI och privata register
Dag 2 — Designmönster & arkitekturprinciper
Designmönster i Python
- Kreationsmönster: Factory, Builder, Singleton (Pythoniska varianter)
- Strukturmallar: Adapter, Facade, Decorator, Proxy
- Beteendemönster: Strategy, Observer, Command
Arkitekturprinciper
- SOLID-principer tillämpade på Python-kodbas
- Hexagonal/Clean Architecture och gränser
- Beroendejektionsmönster och konfigurationshantering
Mångsidighet och återanvändning
- Utformning av bibliotek vs applikationskod
- API:er, stabila gränssnitt och semantisk versionering
- Hantering av konfiguration, hemligheter och miljöspecifika inställningar
Dag 3 — Koncurrens, Async IO, och prestanda
Konkurrens och parallellism
- Trådgrundläggande och GIL-implikationer
- Multiprocessering och processpooler för CPU-bound uppgifter
- När man ska använda concurrent.futures vs multiprocessing
Aysnc-programmering med asyncio
- Async/await-mönster, händelseloop och avbrytning
- Utformning av async-bibliotek och interoperabilitet med synkron kod
- IO-bound mönster, backpressure och rate limiting
Profilerings- och optimeringstools
- Profileringsverktyg: cProfile, pyinstrument, perf, memory_profiler
- Optimera varma sökvägar och använda C-tillägg/Numba vid behov
- Måta latens, genomsättning och resursutnyttjande
Dag 4 — Testning, CI/CD, övervakning och distribution
Testningsstrategier och automatisering
- Enhetstestning och fixtures med pytest; testorganisation
- Egenskapsbaserat testning med Hypothesis och kontraktsbaserad testning
- Mocking, monkeypatching och asynkron kodtestning
CI/CD, release och övervakning
- Integrering av tester och kvalitetsgator i GitHub Actions/GitLab CI
- Bygga reproducerbara containrar med Docker och multi-stage builds
- Applikationsövervakning: strukturerat loggning, Prometheus-mätvärden och spårning
Säkerhet, hårdnande och bästa praxis
- Beroendegranskning, SBOM-grunder och sårbarhetsscanning
- Säkra programmeringspraktiker för inmatningsvalidering och hemligheterhantering
- Körande hårdnande: resursgränser, användarrättigheter och containersäkerhet
Toppminiprojekt & granskning
- Labb i lag: utforma och implementera en liten service med mönster från kursen
- Testning, typkontroll, paketering och CI-pipeline för projektet
- Slutgranskning, kodkritik och handlingens förbättringsplan
Sammanfattning och nästa steg
Krav
- Kraftig mellannivå-erfarenhet av Python-programmering
- Familiaritet med objektorienterad programmering och grundläggande testning
- Erfarenhet av att använda kommandoraden och Git
Målgrupp
- Senior Pythonutvecklare
- Programvaruutvecklare som är ansvariga för kvaliteten och arkitekturen av Python-kod
- Tekniska ledare och MLOps/DevOps-ingenjörer som arbetar med Python-kodbas
Vittnesmål (5)
Det faktum att vi har mer praktiska övningar med mer liknande data som vi använder i våra projekt (satellitbilder i rasterformat)
Matthieu - CS Group
Kurs - Scaling Data Analysis with Python and Dask
Maskintolkat
I thought the trainer was very knowledgeable and answered questions with confidence to clarify understanding.
Jenna - TCMT
Kurs - Machine Learning with Python – 2 Days
Very good preparation and expertise of a trainer, perfect communication in English. The course was practical (exercises + sharing examples of use cases)
Monika - Procter & Gamble Polska Sp. z o.o.
Kurs - Developing APIs with Python and FastAPI
The explaination
Wei Yang Teo - Ministry of Defence, Singapore
Kurs - Machine Learning with Python – 4 Days
Trainer develops training based on participant's pace