"Python"
- 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 Python 哲學與設計理念
理解 Python 的核心設計原則
- 1.1 基礎概念與事件迴圈
理解 asyncio 的核心概念:事件迴圈、協程與並發模型
- 2.1 Descriptor Protocol 完整指南
深入理解 Python 的 Descriptor Protocol,@property 的本質
- 2.1 Type Hints 基礎
為函式添加型別註解,提升程式碼可讀性
- 3.1 pathlib - 路徑操作
物件導向的路徑處理
- 3.1 PyObject 與物件模型
深入理解 Python 的物件模型
- 3.5.1 泛型進階
TypeVar 進階用法、Generic 類別、Protocol 與結構化子型別
- 4.1 ctypes 與 cffi:動態綁定
使用 ctypes 和 cffi 呼叫 C 函式庫
- 4.1 類別設計原則
設計清晰的類別介面
- 5.1 為什麼選擇 Rust?
比較 Rust 與 C/C++ 作為 Python 擴展語言
- 5.1 異常處理策略
何時捕獲、何時拋出
- 6.1 pyproject.toml 完整指南
理解現代 Python 套件的設定標準
- 6.1 如何新增一個 Hook
完整的 Hook 開發流程
- 認知負擔:程式碼設計的核心目的
所有設計原則的統一視角:降低閱讀者的認知負擔
- Runtime 版本升級
PHP / Node.js / Python 大版本升級的相容性評估、本地驗證、分批部署策略與常見陷阱
- 1.2 從單一 script 到多檔案專案
理解 Python 程式如何從單一 .py 檔案長成 module、package 與可測試專案
- 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
- 2.2 Optional、Union、泛型
處理可能為 None 的值和複合型別
- 3.2 json - 序列化
資料的讀寫與轉換
- 3.2 記憶體管理與垃圾回收
理解 Python 的記憶體管理機制
- 3.5.2 異常設計架構
異常層級設計、異常鏈、ExceptionGroup、異常 vs 返回值
- 4.2 Cython:Python 語法的 C 速度
使用 Cython 加速 Python 程式碼
- 4.2 抽象基類 ABC
定義介面契約
- 5.2 PyO3 基礎
使用 PyO3 建立 Rust 與 Python 的綁定
- 5.2 返回值設計
(bool, str) 模式的應用
- 6.2 如何擴展共用模組
為 Hook 系統添加新功能
- 6.2 建構系統比較
比較 setuptools、Poetry、Hatch 等建構系統
- 命名的藝術:讓程式碼說故事
透過命名降低認知負擔,讓程式碼像故事一樣易讀
- Python 平台適配
GIL 與 threading、atexit 可靠性、subprocess 監控 — Python SDK 的平台特殊考量
- 案例: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 設計模式與最佳實踐
學習常見的異步設計模式,避免常見陷阱
- 1.3 模組與套件組織
理解 Python 的模組系統和套件結構
- 2.3 Dataclass 資料結構
快速定義資料類別
- 2.3 類別裝飾器與動態類別
使用類別裝飾器和 type() 動態建立類別
- 3.3 Bytecode 與虛擬機
理解 Python 的執行過程
- 3.3 subprocess - 執行外部命令
呼叫系統命令和外部程式
- 3.5.3 進階上下文管理
上下文管理器協議、contextlib 工具、嵌套與組合、async with
- 4.3 pybind11:現代 C++ 綁定
使用 pybind11 建立 Python 與 C++ 的綁定
- 4.3 工廠模式
動態建立物件
- 5.3 Maturin 開發流程
使用 Maturin 建構和發布 Rust Python 套件
- 5.3 unittest 基礎
撰寫第一個單元測試
- 6.3 如何新增語言解析器
繼承 ABC 實作新解析器
- 6.3 發布到 PyPI
學習如何建構 wheel 並發布到 PyPI
- 開放封閉原則與認知負擔
從認知負擔的視角重新理解 SOLID 原則
- 成本思維:軟體開發的隱性代價
每個技術決策都有成本,學會識別和評估隱性代價
- 案例:LRU 快取
用 functools.lru_cache 快取重複計算
- 案例:泛型驗證器
用 Generic 和 TypeVar 建立型別安全的通用驗證器
- 1.4 實戰:與同步程式碼整合
在現有專案中引入 asyncio,處理同步與異步的混合場景
- 1.4 導入機制與路徑管理
解決模組找不到的問題
- 2.4 Enum 列舉型別
定義有限選項集合
- 2.4 反射與 inspect 模組
使用反射和 inspect 模組檢視和操作 Python 物件
- 3.4 GIL 與執行緒模型
深入理解 GIL 的設計與實現
- 3.4 re - 正規表達式
文字模式匹配與擷取
- 3.5.4 插件系統設計
插件架構模式、動態載入模組、entry_points、實際範例
- 4.4 單例與快取模式
控制物件生命週期
- 4.4 選擇指南與效能比較
比較不同 C 擴展工具的適用場景
- 5.4 Mock 與測試隔離
隔離外部依賴
- 5.4 實戰案例分析
分析知名 Python 專案如何使用 Rust
- 6.4 套件維護最佳實踐
長期維護 Python 套件的最佳實踐
- 2.5 Callable 型別與高階函式
用 Callable 型別描述可呼叫物件與高階函式,讓 callback、decorator 與依賴注入的型別契約清楚起來
- 5.5 頂層例外處理機制
run_hook_safely 與統一錯誤基礎設施
- 6.5 封裝預編譯二進位
Python 套件如何封裝其他語言編譯的二進位檔案
- 案例:資料結構選擇
選擇正確的資料結構:list vs set 的查詢效能差異
- 3.5 logging - 日誌系統
結構化日誌輸出與除錯
- 3.5.5 設計模式整合案例
結合泛型、異常、上下文、插件建立完整系統
- 4.5 Free-Threading - Python 的真正多執行緒時代
Python 3.13+ 無 GIL 版本的完整指南
- 3.5.6 軟體設計的取捨藝術
從業界經驗學習取捨決策框架:DRY vs 重複、效能 vs 可讀性、Build vs Buy、技術債務管理
- 5.6 Hook 系統可觀測性設計
日誌架構、錯誤可見性、健康監控:讓 44 個 Hook 的運行狀態透明可追蹤
- 3.6 argparse - CLI 介面
命令列參數解析
- 3.7 並行處理 - threading、multiprocessing、concurrent.futures
Python 並行處理的三種方式與選擇指南
- 3.8 效能迷思與優化策略
Python 效能的真相、常見誤解與優化方法
- 重構的動機與策略
從 Hook 系統重構經驗出發,學習何時重構、何時不該重構,以及如何將大規模重構拆分成可管理的階段
- 程式碼壞味道偵測
從三級分類系統到偵測工具鏈,建立系統化的程式碼品質防線
- DRY 原則與共用程式庫
學習識別重複程式碼並建立共用模組,含模組演進與漸進遷移策略
- 配置分離與常數管理
學習消除三種硬編碼問題:魔法數字、配置混合、散落訊息
- 大規模統一化重構
從 44 種不同實作到統一基礎設施:日誌、訊息、風格的三階段漸進式重構
- 作用域迴歸案例研究
從 IMP-003 事件學習 Python 變數作用域的陷阱
- 重構陷阱與防護
三個真實重構事故的共通模式:部分更新問題與系統性防護方法
- 非程式碼的重構
用 Progressive Disclosure 精簡膨脹的規則文件,文件重構和程式碼重構是同一套思維
- 完整案例回顧
從超過 30 個 Hook 各自為政到系統化品質工程,三個階段的完整重構復盤
- 10 個 Ticket、57 個綠燈、0 條追溯:從需求文件到測試的銜接檢討
單元測試全綠、卻答不出「這些測試覆蓋了哪些 UseCase 場景」。需求到測試缺反向追溯時的流程缺口盤點與對應修法(追溯矩陣、存根策略、拆分規則)。
- 從 threading 到 asyncio:轉換指南
幫助你從傳統執行緒模型平滑過渡到異步程式設計