Kursplan
Dag 1 – Robust Python-grunnleggende og verktøy
Moderne Python-egenskaper og typer
- Typer grunnleggende, generics, Protokoller og TypeGuard
- Dataclasses, frozen dataclasses, og attrs oversikt
- Mønsterkjenning (PEP 634+) og idiomatic bruk
Kodekvalitet og verktøy
- Kodefremformere og linters: black, isort, flake8, ruff
- Statiske type-sjekking med MyPy og pyright
- Pre-commit hooks og utviklerarbeidsflyter
Prosjektledelse og pakking
- Afhengighetsledelse med Poetry og virtuelle miljøer
- Pakkelayout, entry points, og versjonering best praksis
- Bygge og publisere pakker til PyPI og private registre
Dag 2 – Designmønstre & arkitekturprinsipper
Designmønstre i Python
- Kreative mønstre: Factory, Builder, Singleton (Python-varianter)
- Strukturelle mønstre: Adapter, Facade, Decorator, Proxy
- Atferdsmønstre: Strategy, Observer, Command
Arkitekturprinsipper
- SOLID prinsipper anvendt på Python-kodebasen
- Hexagonal/Clean Arkitektur og grenser
- Afhengighetsinjeksjon mønstre og konfigurasjonsledelse
Modularitet og gjentagbar bruk
- Design av bibliotek vs applikasjonskode
- APIer, stabile grensesnitt, og semantisk versjonering
- Håndtering av konfigurasjon, hemmeligheter, og miljøspesifikk innstillinger
Dag 3 – Konkurranse, Async IO, og ytelsesforbedring
Konkurranse og parallellisme
- Tråding grunnleggende og GIL implikasjoner
- Multiprocessing og prosesspools for CPU-bound oppgaver
- Når man bør bruke concurrent.futures vs multiprocessing
Async programmering med asyncio
- Async/await mønstre, hendelsesløkke og avbrytelse
- Design av async biblioteker og interoperabilitet med synkron kode
- IO-bound mønstre, backpressure, og rate limiting
Profilerering og optimalisering
- Profileringsverktøy: cProfile, pyinstrument, perf, memory_profiler
- Optimalisere hot paths og bruke C-extensions/Numba når det er hensiktsmessig
- Måle forsinkelse, gjennomføring, og ressursbruk
Dag 4 – Testing, CI/CD, observabilitet, og deployment
Testingstrategier og automatisering
- Enhetstesting og fikser med pytest; test organisering
- Egenskapbasert testing med Hypothesis og kontrakttesting
- Mocketing, monkeypatching, og testing av asynkron kode
CI/CD, release, og overvåking
- Integrasjon av tester og kvalitetsgater i GitHub Actions/GitLab CI
- Bygging av gjentakelige containere med Docker og multi-stage builds
- Applikasjonsobservabilitet: strukturert logging, Prometheus-metrikker, og sporingsfølgning
Sikkerhet, forbedring, og beste praksis
- Afhengighetsundersøkelse, SBOM grunnleggende, og sårbarhets scanning
- Sikkert kodepraksis for inputvalidering og hemmelighetsledelse
- Kjøretidsforbedring: ressursgrenser, brukerrettigheter, og container sikkerhet
Hovedprosjekt & gjennomgang
- Team lab: design og implementer en liten tjeneste ved hjelp av mønstre fra kurset
- Testing, type-sjekking, pakking, og CI pipeline for prosjektet
- Sluttgjennomgang, kodekritikk, og handling plan for forbedring
Sammendrag og neste trinn
Krav
- Stark mellomnivå Python-programmerings erfaring
- Familiaritet med objektorientert programmering og grunnleggende testing
- Erfaring med kommandolinje og Git
Målgruppe
- Senior Python-utviklere
- Programvareingeniører ansvarlige for Python-kodekvalitet og arkitektur
- Teknisk ledelse og MLOps/DevOps-ingeniører som jobber med Python-kodebasen
Referanser (5)
Det faktum å ha mer praktiske øvelser som bruker mer lignende data til det vi bruker i våre prosjekter (satellittbilder i rasterformat)
Matthieu - CS Group
Kurs - Scaling Data Analysis with Python and Dask
Maskinoversatt
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