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
 28 timer

Antall deltakere


Pris per deltaker

Referanser (5)

Kommende kurs

Relaterte kategorier