"Python-Advanced"
- 8.1 並行處理實戰
將 concurrent.futures 應用於真實的 I/O 密集任務
- 案例:Cython 加速 Markdown 解析
用 Cython 加速 Markdown 連結解析器,比較純 Python 與 Cython 的效能差異
- 案例:PyO3 文字解析
用 PyO3 和 Rust 實現高效能的 Markdown 連結解析器
- 案例:打包共用庫
將 .claude/lib 打包成可重用的 Python 套件
- 案例:快取生命週期管理
用 Context Manager 控制快取的生命週期,解決全域狀態問題
- 案例:並行檔案檢查
使用 ThreadPoolExecutor 加速 Markdown 連結檢查
- 案例:非同步 subprocess
用 asyncio.create_subprocess_exec 實現非阻塞的外部命令執行
- 案例:宣告式驗證
用 Descriptor Protocol 將驗證邏輯從方法變成屬性定義
- 案例:效能分析實戰
用 cProfile 和 line_profiler 分析 Markdown 連結檢查器的效能瓶頸
- 1.1 基礎概念與事件迴圈
理解 asyncio 的核心概念:事件迴圈、協程與並發模型
- 2.1 Descriptor Protocol 完整指南
深入理解 Python 的 Descriptor Protocol,@property 的本質
- 3.1 PyObject 與物件模型
深入理解 Python 的物件模型
- 3.5.1 泛型進階
TypeVar 進階用法、Generic 類別、Protocol 與結構化子型別
- 4.1 ctypes 與 cffi:動態綁定
使用 ctypes 和 cffi 呼叫 C 函式庫
- 5.1 為什麼選擇 Rust?
比較 Rust 與 C/C++ 作為 Python 擴展語言
- 6.1 pyproject.toml 完整指南
理解現代 Python 套件的設定標準
- 8.2 效能調優實戰
測量、分析、優化的完整流程
- 案例:Rust 正則表達式
用 Rust regex crate 加速 Hook 驗證器的模式匹配
- 案例:自動註冊機制
用 Metaclass 實現檢查器的自動註冊,消除手動維護註冊表的負擔
- 案例:並行 Hook 驗證
使用 ThreadPoolExecutor 並行驗證 Hook,並實現進度報告
- 案例:並行 I/O 操作
用 asyncio.gather 和 TaskGroup 實現高效的並行 I/O 操作
- 案例:使用 ctypes 呼叫系統 API
透過 ctypes 直接呼叫 C 函式庫的系統函式,實現 Python 標準庫未提供的功能
- 案例:使用 Poetry 完整工作流
從專案建立到發布的 Poetry 完整工作流程
- 案例:記憶體優化
用 __slots__ 和 weakref 優化快取系統的記憶體使用
- 案例:插件架構設計
用 Protocol 和註冊機制實現可擴展的插件系統
- 1.2 協程與 Task 管理
深入理解協程、Task 與 Future,掌握 async/await 的進階用法
- 2.2 Metaclass 設計與應用
理解 Python 的類別建立機制與 Metaclass
- 3.2 記憶體管理與垃圾回收
理解 Python 的記憶體管理機制
- 3.5.2 異常設計架構
異常層級設計、異常鏈、ExceptionGroup、異常 vs 返回值
- 4.2 Cython:Python 語法的 C 速度
使用 Cython 加速 Python 程式碼
- 5.2 PyO3 基礎
使用 PyO3 建立 Rust 與 Python 的綁定
- 6.2 建構系統比較
比較 setuptools、Poetry、Hatch 等建構系統
- 案例:pybind11 綁定 C++ 類別
用 pybind11 將 C++ 類別綁定到 Python,展示建構子、方法、屬性、運算子重載與記憶體管理
- 案例:正則表達式預編譯
用 re.compile 減少重複編譯開銷
- 案例:同步/非同步橋接
用 run_in_executor 和 asyncio.run 在同步與非同步程式碼之間建立橋樑
- 案例:使用 Hatch 完整工作流
從專案建立到發布的 Hatch 實戰指南
- 案例:異常設計架構
設計清晰的異常階層,並用 ExceptionGroup 處理多重錯誤
- 案例:類似 Django Field 的設計
結合 Descriptor 和 dataclass 設計類似 Django Model Field 的宣告式 API
- 1.3 設計模式與最佳實踐
學習常見的異步設計模式,避免常見陷阱
- 2.3 類別裝飾器與動態類別
使用類別裝飾器和 type() 動態建立類別
- 3.3 Bytecode 與虛擬機
理解 Python 的執行過程
- 3.5.3 進階上下文管理
上下文管理器協議、contextlib 工具、嵌套與組合、async with
- 4.3 pybind11:現代 C++ 綁定
使用 pybind11 建立 Python 與 C++ 的綁定
- 5.3 Maturin 開發流程
使用 Maturin 建構和發布 Rust Python 套件
- 6.3 發布到 PyPI
學習如何建構 wheel 並發布到 PyPI
- 案例:LRU 快取
用 functools.lru_cache 快取重複計算
- 案例:泛型驗證器
用 Generic 和 TypeVar 建立型別安全的通用驗證器
- 1.4 實戰:與同步程式碼整合
在現有專案中引入 asyncio,處理同步與異步的混合場景
- 2.4 反射與 inspect 模組
使用反射和 inspect 模組檢視和操作 Python 物件
- 3.4 GIL 與執行緒模型
深入理解 GIL 的設計與實現
- 3.5.4 插件系統設計
插件架構模式、動態載入模組、entry_points、實際範例
- 4.4 選擇指南與效能比較
比較不同 C 擴展工具的適用場景
- 5.4 實戰案例分析
分析知名 Python 專案如何使用 Rust
- 6.4 套件維護最佳實踐
長期維護 Python 套件的最佳實踐
- 6.5 封裝預編譯二進位
Python 套件如何封裝其他語言編譯的二進位檔案
- 案例:資料結構選擇
選擇正確的資料結構:list vs set 的查詢效能差異
- 3.5.5 設計模式整合案例
結合泛型、異常、上下文、插件建立完整系統
- 4.5 Free-Threading - Python 的真正多執行緒時代
Python 3.13+ 無 GIL 版本的完整指南
- 3.5.6 軟體設計的取捨藝術
從業界經驗學習取捨決策框架:DRY vs 重複、效能 vs 可讀性、Build vs Buy、技術債務管理
- 從 threading 到 asyncio:轉換指南
幫助你從傳統執行緒模型平滑過渡到異步程式設計