Sadržaj kursa
Dan 1 — Robusne osnove Pythona i alatstvo
Moderne karakteristike Pythona i tipizacija
- Osnove tipizacije, genrici, Protokoli i TypeGuard
- Dataclass-ovi, zamrznuti dataclass-ovi i pregled attrs
- Prilagođavanje obrazaca (PEP 634+) i idiomatično korišćenje
Kvalitet koda i alatstvo
- Formatiraoči koda i linteri: black, isort, flake8, ruff
- Statičko proveravanje tipova uz MyPy i pyright
- Pre-commit kuke i tokovi rada razvojača
Upravljanje projektima i pakovanje
- Upravljanje zavisnostima uz Poetry i virtuelna okruženja
- Raspored paketa, tačke ulaska i najbolje prakse verzionisanja
- Gradnja i objavljivanje paketa na PyPI i privatne registre
Dan 2 — Obrasci dizajna i arhitektonske prakse
Obrasci dizajna u Pythonu
- Kreativni obrasci: Factory, Builder, Singleton (Pythonizovani varijante)
- Strukturalni obrasci: Adapter, Facade, Decorator, Proxy
- Ponašajni obrasci: Strategy, Observer, Command
Arhitektonska načela
- SOLID načela primenjena na Python bazama koda
- Hexagonal/Clean arhitektura i granice
- Obrasci injicije zavisnosti i upravljanje konfiguracionim podacima
Modularnost i ponovo korišćenje
- Dizajniranje biblioteke u odnosu na kod aplikacije
- API-ji, stabilni interfejsi i semantičko verzionisanje
- Ručanje konfiguracionih podataka, tajni i podešavanja specifičnih za okruženje
Dan 3 — Konkurencija, asinhrona IO i performanse
Konkurencija i paralelnost
- Osnove niti i implikacije GIL-a
- Multiprocessing i procesni pool-ovi za CPU-ograničene zadatke
- Kada koristiti concurrent.futures u odnosu na multiprocessing
Asinhrono programiranje uz asyncio
- Async/await obrasci, petlja događaja i prekid
- Dizajniranje asinhronih biblioteka i interakcija sa sinkronim kodom
- IO-ograničeni obrasci, povratni pritisak i ograničenje stope
Profiliranje i optimizacija
- Alati za profiliranje: cProfile, pyinstrument, perf, memory_profiler
- Optimizacija toplih staza i korišćenje C-ekstenzija/Numba gde je primerno
- Merenje latencije, propusnog kapaciteta i iskorišćenja resursa
Dan 4 — Testiranje, CI/CD, posmatranje i implementacija
Strategije testiranja i automatizacija
- Testiranje jedinica i fiksni elementi uz pytest; organizacija testova
- Testiranje zasnovano na svojstvima uz Hypothesis i testiranje ugovora
- Mocking, monkeypatching i testiranje asinhronog koda
CI/CD, izdavanje i praćenje
- Integracija testova i kontrolnih tačaka kvaliteta u GitHub Actions/GitLab CI
- Gradnja reproduktibilnih kontejnera uz Docker i višestepene gradnje
- Posmatranje aplikacija: strukturirano beleženje, metrike Prometheus i traganje
Bezbednost, učvršćivanje i najbolje prakse
- Revizija zavisnosti, osnove SBOM-a i skeniranje ranjivosti
- Bezbedne prakse programiranja za validaciju ulaza i upravljanje tajnama
- Učvršćivanje u vremenu izvođenja: ograničenja resursa, korisnička prava i bezbednost kontejnera
Capstone projekat i pregled
- Timski laboratorija: dizajniranje i implementacija male servisa koristeći obrasce iz kursa
- Testiranje, proveravanje tipova, pakovanje i CI pipeline za projekat
- Konačni pregled, kritika koda i plan poboljšanja za akciju
Sažetak i sledeći koraci
Uslovi
- Snažno iskustvo srednjeg nivoa programiranja u Pythonu
- Znajomstvo sa objektno-orijentisanom programom i osnovnim testiranjem
- Iskustvo u korišćenju komandne linije i Gita
Publica
- Senior Python programeri
- Inženjeri softvera odgovorni za kvalitet koda i arhitekturu Pythona
- Tehnički vodiči i MLOps/DevOps inženjeri koji rade sa Python bazom koda
Iskustva korisnika (2)
Sve je bilo savršeno
Florin Vrincianu
Kurs - Python Programming Fundamentals
Mašinski prevedeno
Vježbe sa direktnim učešćem u vezi sa predavanjem stvarno pomažu u boljem razumevanju svake teme. Takođe, stil od držanja početnog dela predavanja i nastavka praktičnim vježbama je koristan i pomaže da se povežu sa sadržajima koji su ranije predstavljeni.
Nazeera Mohamad - Ministry of Science, Technology and Innovation
Kurs - Introduction to Data Science and AI using Python
Mašinski prevedeno