Kursplan
Dag 1 — Robust Python-grunnlag & Verktøy
Moderne Python-funksjoner og typning
- Typning baser, generiske, Protocols og TypeGuard
- Dataklasser, fryste dataklasser og oversikt over attrs
- Mønstermatching (PEP 634+) og idiomatisk bruk
Kodekvalitet og verktøy
- Kodeformatere og lints: black, isort, flake8, ruff
- Statisk typer med MyPy og pyright
- Pre-commit hooks og utviklerarbeidsflyt
Prosjektstyring og pakking
- Avhengighetsstyring med Poetry og virtuelle miljøer
- Pakkeoppsett, inngangspunkter og versjonering beste praksis
- Bygge og publisere pakker til PyPI og private registre
Dag 2 — Designmønstre & Arkitekturpraksis
Designmønstre i Python
- Opprettningsmønstre: Factory, Builder, Singleton (Pythoniske varianter)
- Strukturelle mønstre: Adapter, Facade, Decorator, Proxy
- Bærende mønstre: Strategy, Observer, Command
Arkitekturprinsipper
- SOLID-prinsipper anvendt på Python-kodebaser
- Hexagonal/Clean Architecture og grenser
- Avhengighet injeksjon mønstre og konfigurasjonsstyring
Modularitet og gjenbruk
- Design av bibliotek vs applikasjon kode
- APIer, stabile grensesnitt og semantisk versjonering
- Behandle konfigurasjon, hemmeligheter og miljøspesifikke innstillinger
Dag 3 — Samtidighet, Async IO og ytelse
Samtidighet og parallellisering
- Trådbaserte grunnleggende og GIL-implikasjoner
- Multiprocessing og prosesspooler for CPU-tunge oppgaver
- Når å bruke concurrent.futures vs multiprocessing
Asynkron programmering med asyncio
- Async/await mønstre, hendelsessløyfe og avbrytelse
- Design av asynkrone biblioteker og interoperabilitet med synkron kode
- IO-baserte mønstre, baktrykk og hastighetsbegrensning
Profiling og optimalisering
- Profilering verktøy: cProfile, pyinstrument, perf, memory_profiler
- Optimalisering av varme stier og bruk av C-utvidelser/Numba der det er hensiktsmessig
- Måle forsinkelse, båndbredde og ressursutnyttelse
Dag 4 — Testing, CI/CD, Observability og utlevering
Teststrategier og automatisering
- Enhetstesting og fixtures med pytest; testorganisering
- Egenskap-basert testing med Hypothesis og kontrakt testing
- Mocking, monkeypatching og testing av asynkron kode
CI/CD, release og overvåking
- Integrasjon av tester og kvalitetssperre til GitHub Actions/GitLab CI
- Bygge reproduserbare containere med Docker og flertrinn bygge
- Applikasjon observability: strukturert logging, Prometheus metrikker og sporinger
Sikkerhet, harding og beste praksis
- Avhengighetsrevisjon, SBOM grunnleggende og sårbarhetsscan
- Sikker koding praksis for validering av inngang og hemmelighetsstyring
- Kjøring harding: ressursbegrensninger, brukerrettigheter og containersikkerhet
Sluttprosjekt & Gjennomgang
- Team lab: Design og implementer en liten tjeneste ved hjelp av mønstre fra kurset
- Testing, typer, pakking og CI-pipeline for prosjektet
- Sluttgjenomgang, kodekritikk og handlebar forbedringsplan
Oppsummering og neste steg
Krav
- Solid Python-programmering på mellomnivå
- Kjennskap til objektorientert programmering og grunnleggende testing
- Erfaring med kommandolinje og Git
Målgruppe
- Senior Python-utviklere
- Programvareingeniører ansvarlige for Python kodekvalitet og arkitektur
- Tekniske ledere og MLOps/DevOps-ingeniører som jobber 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