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 (2)
Praktiska övningar relaterade till innehållet hjälper verkligen till att förstå mer om varje ämne. Dessutom är det bra och hjälpsamt att börja lektionen med en föreläsning och sedan fortsätta med praktiska övningar, vilket gör det lättare att relatera till den tidigare presenterade föreläsningen.
Nazeera Mohamad - Ministry of Science, Technology and Innovation
Kurs - Introduction to Data Science and AI using Python
Maskintolkat
Exempel/övningar perfekt anpassade till vår domän
Luc - CS Group
Kurs - Scaling Data Analysis with Python and Dask
Maskintolkat