Kurzusleírás
1. nap — Robusztus Python Alapok és Eszközök
Modern Python Jellemzők és Típuskezelés
- Típuskezelés alapjai, generikusok, Protokollok és TypeGuard
- Dataclass-ok, fagyasztott dataclass-ok és attrs áttekintés
- Mintaillesztés (PEP 634+) és idomatikus használat
Kódminőség és Eszközök
- Kódformázók és linterek: black, isort, flake8, ruff
- Statikus típusellenőrzés MyPy és pyright segítségével
- Pre-commit hookok és fejlesztői munkafolyamatok
Projektmenedzsment és Csomagolás
- Függőségkezelés Poetry és virtuális környezetek segítségével
- Csomag szerkezet, belépési pontok és verziókezelés ajánlott eljárások
- Csomagok építése és közzététele PyPI és privát regisztrációs rendszerekben
2. nap — Tervezési Minták és Architektúra Gyakorlatok
Tervezési Minták Pythonban
- Létrehozási minták: Gyár, Építő, Singleton (Pythonos változatok)
- Szerkezeti minták: Adapter, Homlokzat, Dekorátor, Proxy
- Viselkedési minták: Stratégia, Megfigyelő, Parancs
Architektúra Elvek
- SOLID elvek alkalmazása Python kódbázisokban
- Hexagonális/Tiszta Architektúra és határok
- Függőség injektálás minták és konfigurációkezelés
Modularitás és Újrafelhasználás
- Könyvtár vs alkalmazás kód tervezése
- API-k, stabil interfészek és szemantikus verziókezelés
- Konfiguráció, titkos kulcsok és környezetfüggő beállítások kezelése
3. nap — Konkurencia, Async IO és Teljesítmény
Konkurencia és Párhuzamosítás
- Szálalapú programozás alapjai és a GIL hatásai
- Többprocesszoros feldolgozás és processzoros készletek CPU-kötött feladatokhoz
- Mikor használjunk concurrent.futures vs multiprocessing-et
Aszinkron Programozás asyncio-val
- Async/await minták, eseményhurok és megszakítás
- Aszinkron könyvtárak tervezése és szinkron kóddal való együttműködés
- IO-kötött minták, visszanyomás és sávszélesség korlátozás
Profilozás és Optimalizálás
- Profilozó eszközök: cProfile, pyinstrument, perf, memory_profiler
- Forró pontok optimalizálása és C-bővítmények/Numba használata, ahol indokolt
- Késleltetés, átviteli sebesség és erőforrás kihasználtság mérése
4. nap — Tesztelés, CI/CD, Megfigyelhetőség és Üzembehelyezés
Tesztelési Stratégiák és Automatizálás
- Egységtesztelés és fixture-ök pytest-tel; teszt szervezés
- Tulajdonság alapú tesztelés Hypothesis és szerződéses tesztelés segítségével
- Mockolás, monkeypatching és aszinkron kód tesztelése
CI/CD, Kiadás és Megfigyelés
- Tesztek és minőségi kapuk integrálása GitHub Actions/GitLab CI segítségével
- Reprodukálható konténerek építése Docker és többszintű build-ek segítségével
- Alkalmazás megfigyelhetőség: strukturált naplózás, Prometheus metrikák és nyomkövetés
Biztonság, Megerősítés és Ajánlott Eljárások
- Függőség auditálás, SBOM alapok és sebezhetőség vizsgálat
- Biztonságos kódolási gyakorlatok bemeneti ellenőrzéshez és titkos kulcsok kezeléséhez
- Futásidejű megerősítés: erőforrás korlátok, felhasználói jogok és konténer biztonság
Záró Projekt és Áttekintés
- Csapatlabor: tervezzen és valósítson meg egy kis szolgáltatást a kurzusból származó minták alapján
- A projekt tesztelése, típusellenőrzése, csomagolása és CI folyamata
- Végső áttekintés, kódkritika és akcióterv
Összefoglalás és Következő Lépések
Követelmények
- Erős középszintű Python programozási tapasztalat
- Objektum-orientált programozás és alapvető tesztelés ismerete
- Parancssor és Git használatának gyakorlata
Célközönség
- Senior Python fejlesztők
- Szoftvermérnökök, akik a Python kódminőségért és architektúráért felelősek
- Technikai vezetők és MLOps/DevOps mérnökök, akik Python kódbázisokkal dolgoznak
Vélemények (2)
A gyakorlati feladatok a tartalomhoz való kapcsolódáshoz nagy segítséget nyújtanak, hogy jobban megértsük minden témát. Ezenkívül az órát előadással kezdve, majd gyakorlati feladatokkal folytatva szintén jó és hasznos módja annak, hogy kapcsolatot teremtsek az korábban bemutatott anyaggal.
Nazeera Mohamad - Ministry of Science, Technology and Innovation
Kurzus - Introduction to Data Science and AI using Python
Gépi fordítás
Példák és gyakorlati feladatok, amelyek tökéletesen illeszknek a területünkre
Luc - CS Group
Kurzus - Scaling Data Analysis with Python and Dask
Gépi fordítás