Εξέλιξη Κομματιού
Ημέρα 1 — Σταθερές Βάσεις Python και Εργαλειοθήκη
Σύγχρονα Χαρακτηριστικά Python και Σύστημα Τύπων
- Βασικές έννοιες τύπων, γενικευμένοι τύποι, Πρωτόκολλα και TypeGuard
- Dataclasses, frozen dataclasses και επισκόπηση της βιβλιοθήκης attrs
- Αντιστοίχιση προτύπων (PEP 634+) και ιδιωματική χρήση
Ποιότητα Κώδικα και Εργαλεία
- Μορφοποιητές κώδικα και linters: black, isort, flake8, ruff
- Στατικός έλεγχος τύπων με MyPy και pyright
- Pre-commit hooks και ροές εργασίας προγραμματιστών
Διαχείριση Έργων και Πακετάρισμα
- Διαχείριση εξαρτήσεων με Poetry και εικονικά περιβάλλοντα
- Διάταξη πακέτου, σημεία εισόδου και βέλτιστες πρακτικές versioning
- Δημιουργία και δημοσίευση πακέτων στο PyPI και σε ιδιωτικά μητρώα
Ημέρα 2 — Σχεδιαστικά Μοτίβα & Αρχιτεκτονικές Πρακτικές
Σχεδιαστικά Μοτίβα στην Python
- Δημιουργικά μοτίβα: Factory, Builder, Singleton (Πυθωνικές παραλλαγές)
- Δομικά μοτίβα: Adapter, Facade, Decorator, Proxy
- Συμπεριφορικά μοτίβα: Strategy, Observer, Command
Αρχιτεκτονικές Αρχές
- Οι αρχές SOLID εφαρμοσμένες σε κώδικα Python
- Εξαγωνική/Clean Αρχιτεκτονική και όρια
- Μοτίβα έγχυσης εξαρτήσεων και διαχείριση παραμετροποίησης
Αρθρωτότητα και Επαναχρησιμοποίηση
- Σχεδίαση κώδικα βιβλιοθήκης έναντι κώδικα εφαρμογής
- APIs, σταθερές διεπαφές και σημασιολογική εκδοχή (semantic versioning)
- Διαχείριση ρυθμίσεων, μυστικών και περιβαλλοντικών παραμέτρων
Ημέρα 3 — Ταυτοχρονισμός, Ασύγχρονο IO και Απόδοση
Ταυτοχρονισμός και Παραλληλισμός
- Βασικές αρχές νημάτων και επιπτώσεις του GIL
- Multiprocessing και δεξαμενές διεργασιών για CPU-bound εργασίες
- Πότε να χρησιμοποιούμε concurrent.futures έναντι multiprocessing
Ασύγχρονος Προγραμματισμός με asyncio
- Μοτίβα async/await, βρόχος συμβάντων και ακύρωση
- Σχεδίαση ασύγχρονων βιβλιοθηκών και διαλειτουργικότητα με σύγχρονο κώδικα
- Μοτίβα για IO-bound εργασίες, αντίθλιψη (backpressure) και περιορισμός ρυθμού
Προφίλ και Βελτιστοποίηση
- Εργαλεία προφίλ: cProfile, pyinstrument, perf, memory_profiler
- Βελτιστοποίηση θερμών μονοπατιών και χρήση επεκτάσεων C/Numba όπου ενδείκνυται
- Μέτρηση καθυστέρησης, διεκπεραιωτικής ικανότητας και χρήσης πόρων
Ημέρα 4 — Δοκιμές, CI/CD, Παρατηρησιμότητα και Ανάπτυξη
Στρατηγικές Δοκιμών και Αυτοματοποίηση
- Unit testing και fixtures με pytest· οργάνωση δοκιμών
- Δοκιμές βάσει ιδιοτήτων με Hypothesis και δοκιμές συμβολαίων
- Mocking, monkeypatching και δοκιμές ασύγχρονου κώδικα
CI/CD, Έκδοση και Παρακολούθηση
- Ενσωμάτωση δοκιμών και ποιοτικών φραγμών σε GitHub Actions/GitLab CI
- Δημιουργία αναπαραγώγιμων containers με Docker και χτίσιμο πολλαπλών σταδίων
- Παρατηρησιμότητα εφαρμογών: δομημένη καταγραφή, μετρικές Prometheus και ιχνηλάτηση
Ασφάλεια, Θωράκιση και Βέλτιστες Πρακτικές
- Έλεγχος εξαρτήσεων, βασικές έννοιες SBOM και σάρωση ευπαθειών
- Ασφαλείς πρακτικές κώδικα για επικύρωση εισόδου και διαχείριση μυστικών
- Θωράκιση χρόνου εκτέλεσης: περιορισμοί πόρων, δικαιώματα χρήστη και ασφάλεια container
Κορυφαία Εργασία & Ανασκόπηση
- Ομαδικό εργαστήριο: σχεδίαση και υλοποίηση μιας μικρής υπηρεσίας με χρήση μοτίβων από το σεμινάριο
- Δοκιμές, έλεγχος τύπων, πακετάρισμα και αγωγός CI για το έργο
- Τελική ανασκόπηση, κριτική κώδικα και σχέδιο εφαρμόσιμων βελτιώσεων
Σύνοψη και Επόμενα Βήματα
Απαιτήσεις
- Ισχυρή εμπειρία προγραμματισμού Python σε μεσαίο επίπεδο
- Εξοικείωση με τον αντικειμενοστραφή προγραμματισμό και τις βασικές δοκιμές
- Εμπειρία στη χρήση γραμμής εντολών και Git
Ακροατήριο
- Ανώτεροι προγραμματιστές Python
- Μηχανικοί λογισμικού υπεύθυνοι για ποιότητα κώδικα Python και αρχιτεκτονική
- Τεχνικοί επικεφαλής και μηχανικοί MLOps/DevOps που εργάζονται με κώδικα Python
Σχόλια (2)
τα πάντα ήταν τέλεια
Florin Vrincianu
Κομμάτι - Python Programming Fundamentals
Μηχανική Μετάφραση
Η πρακτική εξάσκηση σχετικά με το υλικό βοηθά πραγματικά να κατανοήσουμε περισσότερα για κάθε θέμα. Επιπλέον, ο τρόπος ξεκινήσης των μαθημάτων με διδασκαλία και συνέχεια με πρακτική εξάσκηση είναι καλός και χρήσιμος για να συνδεθεί με τη διδασκαλία που παρουσιάστηκε αρχικά.
Nazeera Mohamad - Ministry of Science, Technology and Innovation
Κομμάτι - Introduction to Data Science and AI using Python
Μηχανική Μετάφραση