Kursplan
Dag 1 — Robuste Python-grunnlag og verktøy
Moderne Python-funksjoner og typing
- Typing-grunnleggende, generisk, Protokoller og TypeGuard
- Dataklasser, fryste dataklasser og attrs-overblikk
- Mønstermatching (PEP 634+) og idiomatisk bruk
Kodekvalitet og verktøy
- Kodeformaterings- og linterverktøy: black, isort, flake8, ruff
- Statisk typekontroll med MyPy og pyright
- Pre-commit-kroker og utviklerarbeidsflyter
Prosjektledelse og pakking
- Avhengighetsstyring med Poetry og virtuelle miljøer
- Pakkleggg, inngangs punkter og versjonering beste praksis
- Bygge og publisere pakker til PyPI og private registre
Dag 2 — Designmønstre og arkitekturpraksis
Designmønstre i Python
- Kreativ mønstre: Factory, Builder, Singleton (Pythoniske varianter)
- Strukturelle mønstre: Adapter, Facade, Decorator, Proxy
- Adferdsmønstre: Strategy, Observer, Command
Arkitektureprinper
- SOLID-prinsippene anvendt på Python-kodebaser
- Hexagonal/Rens Arkitektur og grenser
- Avhengighetsinjeksjonsmønstre og konfigurasjonsstyring
Modularitet og gjenbruk
- Design av bibliotek vs applikkasjonskode
- API-er, stabile grensesnitt og semantisk versjonering
- Håndtering av konfigurasjon, hemmeligheter og miljøspesifikke innstillinger
Dag 3 — Konkurrens, Async IO og ytelse
Konkurrens og parallellisering
- Tråd-grunnlag og implikasjoner av GIL
- Multiprocessing og prosesspuler for CPU-bundne oppgaver
- Når man skal bruke concurrent.futures vs multiprocessing
Asynkron programmering med asyncio
- Async/await-mønstre, hendelseløkke og kansellering
- Design av asynkrone biblioteker og interoperabilitet med synkron kode
- IO-bundne mønstre, backpressure og hastighetsbegrensning
Profilering og optimering
- Profilverktøy: cProfile, pyinstrument, perf, memory_profiler
- Optimering av varmsti og bruk av C-utvidelser/Numba der passende
- Måling av laten, gjennomstrømning og ressursutnyttelse
Dag 4 — Testing, CI/CD, observabilitet og utlevering
Teststrategier og automatisering
- Enhetstesting og fixtures med pytest; testorganisering
- Egenskap-basert testing med Hypothesis og kontrakttesting
- Mocking, monkeypatching og testing av asynkrone kode
CI/CD, utgivelse og overvåkning
- Integrering av testing og kvalitetskontrollpunkt til GitHub Actions/GitLab CI
- Bygge reproduserbare containere med Docker og flerstegsbygging
- Applikasjonobservabilitet: strukturert logging, Prometheus-metrikker og sporings
Sikkerhet, forsterking og beste praksis
- Avhengighetsoptre, grunnleggende SBOM og sårsomhets-skanning
- Sikker programmeringspraksis for inndatavalidering og hemmelighetsstyring
- Løptidsforsterking: ressursbegrensninger, brukerrätter og container sikkerhet
Capstone-prosjekt og gjennomgang
- Team-lab: design og implementasjon av en liten tjeneste ved hjelp av mønstre fra kurset
- Testing, typekontroll, pakking og CI-rørledning for prosjektet
- Sluttgjennomgang, kodekritikk og handlingsrettet forbedringsplan
Oppsummering og neste steg
Krav
- Styrk mellomnivå Python-programmeringserfaring
- Kjennskap til objektorientert programmering og grunnleggende testing
- Erfaring med bruk av kommandolinjen og Git
Målgruppe
- Senior Python-utviklere
- Programvareingeniører ansvarlige for Python-kodekvalitet og arkitektur
- Tekniske ledere og MLOps/DevOps-ingeniører som arbeider med Python-kodebaser
Referanser (2)
alt var perfekt
Florin Vrincianu
Kurs - Python Programming Fundamentals
Maskinoversatt
Praktiske øvelser relatert til innholdet hjelper virkelig med å forstå mer om hvert emne. Dette gjelder også for stilarten med å begynne klassemøtet med en forelesning og fortsette med praktiske øvelser, som er god og nyttig for å knytte sammen med den presenterte forelesningen.
Nazeera Mohamad - Ministry of Science, Technology and Innovation
Kurs - Introduction to Data Science and AI using Python
Maskinoversatt