聯繫我們
 課程時長 28 時間:

課程簡介

第一天 — 穩健的 Python 基礎與工具

現代 Python 特性與類型系統

  • 類型基礎、泛型(Generics)、Protocols 及 TypeGuard
  • 資料類別(Dataclasses)、凍結資料類別及 attrs 概覽
  • 模式匹配(PEP 634+)及慣用寫法

程式碼品質與工具

  • 程式碼格式化器與 Linter:black, isort, flake8, ruff
  • 使用 MyPy 和 pyright 進行靜態類型檢查
  • Pre-commit 鉤子及開發者工作流程

專案管理與封裝

  • 使用 Poetry 及虛擬環境進行依賴管理
  • 套件佈局、進入點(entry points)及版本控制最佳實踐
  • 建置及發佈套件至 PyPI 和私有註冊表

第二天 — 設計模式與架構實踐

Python 中的設計模式

  • 建立型模式:工廠(Factory)、建造者(Builder)、單例(Singleton)(Python 風格變體)
  • 結構型模式:適配器(Adapter)、外觀(Facade)、裝飾器(Decorator)、代理(Proxy)
  • 行為型模式:策略(Strategy)、觀察者(Observer)、命令(Command)

架構原則

  • 將 SOLID 原則應用於 Python 程式碼庫
  • 六角形/乾淨架構(Hexagonal/Clean Architecture)及邊界設定
  • 依賴注入模式及配置管理

模組化與重用

  • 設計函式庫代碼與應用程式代碼的差異
  • API、穩定介面及語意化版本控制(Semantic Versioning)
  • 處理配置、密鑰及特定環境設定

第三天 — 並發、非同步 IO 與效能

並發與平行處理

  • 執行緒基礎及 GIL(全球解鎖指標)的影響
  • 使用多重處理(Multiprocessing)及程序池處理 CPU 密集任務
  • 何時使用 concurrent.futures 與 multiprocessing 的區分

使用 asyncio 進行非同步程式設計

  • Async/await 模式、事件循環(event loop)及取消機制
  • 設計非同步函式庫及與同步代碼的互操作性
  • IO 密集模式、背壓(backpressure)及速率限制

剖析與最佳化

  • 剖析工具:cProfile, pyinstrument, perf, memory_profiler
  • 最佳化熱路徑,並在適當時候使用 C 擴充或 Numba
  • 測量延遲、吞吐量及資源使用率

第四天 — 測試、CI/CD、可觀察性與部署

測試策略與自動化

  • 使用 pytest 進行單元測試及 fixtures;測試組織
  • 使用 Hypothesis 進行屬性基礎測試及合約測試
  • 模擬(Mocking)、猴子打補丁(monkeypatching)及測試非同步代碼

CI/CD、發佈與監控

  • 將測試及品質門檻整合至 GitHub Actions/GitLab CI
  • 使用 Docker 及多階段建置(multi-stage builds)建立可重現的容器
  • 應用程式可觀察性:結構化記錄、Prometheus 指標及追蹤(tracing)

安全性、強化與最佳實踐

  • 依賴審計、SBOM(軟體物料清單)基礎及漏洞掃描
  • 輸入驗證與密鑰管理的secure編碼實踐
  • 執行時強化:資源限制、使用者權限及容器安全

綜合專案與審查

  • 團隊實驗室:設計並實現一個使用課程中模式的小型服務
  • 專案的測試、類型檢查、封裝及 CI 管線
  • 最終審查、程式碼批評及可行的改進計劃

總結與後續步驟

最低要求

  • 具備強勁的中級 Python 程式設計經驗
  • 熟悉物件導向程式設計(OOP)及基礎測試
  • 有使用命令列(CLI)及 Git 的經驗

適用對象

  • 資深 Python 開發人員
  • 負責 Python 程式碼品質與架構的軟體工程師
  • 處理 Python 程式碼庫的技術負責人及 MLOps/DevOps 工程師

客戶評論 (2)

即將到來的課程

課程分類