diff --git a/00.00 Inbox/clean code.md b/00.00 Inbox/clean code.md new file mode 100644 index 0000000..de7c511 --- /dev/null +++ b/00.00 Inbox/clean code.md @@ -0,0 +1,100 @@ +--- +tags: +aliases: +date: 2025-08-04 +time: 16:49:36 +description: +--- + +# 核心設計原則 +本課程遵循3Rs架構: +1. 可讀性(Readability):讓程式碼易於理解和維護 +2. 可重用性(Reusability):減少重複程式碼,提高開發效率 +3. 可重構性(Refactorability):支援模組化設計和持續改進 + +# 第一階段:基礎理論與核心原則 +- **Clean Code定義與重要性** + - 什麼是Clean Code:易讀、易懂、易維護的程式碼 + - 技術債務的概念與影響 + - 童子軍規則:讓程式碼比接手時更乾淨 + +- **有意義的命名規範** + - 使用具描述性且明確的變數名稱 + - 函式命名:動詞片語表達動作意圖 + - 類別命名:名詞表達實體概念 + - 避免縮寫和神秘數字 + +- **函式設計原則** + - 單一職責原則:一個函式只做一件事 + - 函式長度控制:目標在20行以下 + - 參數管理:最多3個參數的建議 + - 避免副作用與Flag參數 + +- **程式碼組織結構** + - 降層原則:由上到下的閱讀順序 + - 錯誤處理:使用例外處理取代錯誤碼 + +- **註解最佳實踐** + - 何時需要註解,何時不需要 + - 讓程式碼自我說明 + - 有效註解的撰寫技巧 + +- **程式碼格式化** + - 一致性的重要性 + - 縮排與空白字元的運用 + - 程式碼區塊的邏輯分組 + +# 第二階段:進階設計原則 +- **五大SOLID原則詳解** + - **S**:單一職責原則(SRP) + - **O**:開放封閉原則(OCP) + - **L**:里氏替換原則(LSP) + - **I**:介面隔離原則(ISP) + - **D**:依賴反轉原則(DIP) +- **實務應用案例** + - 每個原則的程式碼範例 + - 違反原則的常見問題 + +- **常用設計模式** + - 工廠模式:封裝物件創建 + - 策略模式:演算法替換 + - 觀察者模式:事件處理 + - 裝飾者模式:功能擴展 + +- **重構基本概念** + - 重構定義:改善內部結構不影響外部行為 + - 重構時機:三次法則與預備性重構 + - 安全重構:依賴測試確保正確性 + +- **常用重構手法** + - 提取方法(Extract Method) + - 封裝成員變數(Encapsulate Field) + - 方法更名(Rename Method) + - 消除重複程式碼 + +# 第三階段:實戰應用 +- **TDD基本概念與流程** + - 紅燈-綠燈-重構循環 + - 單元測試的撰寫技巧 + - 測試覆蓋率與品質指標 + +- **專案案例分析** + - BMI計算機Clean Code版本實作 + - 購物車系統的Clean Code改造 + - 登錄註冊系統的重構實戰 + +- **程式碼審查流程** + - 審查清單建立 + - 給予建設性回饋的技巧 + - 處理團隊中程式碼品質分歧 + + +# 第四階段:進階實踐 +- **效能最佳化考量** + - 何時最佳化? + - Clean Code與效能的權衡 + - 常見效能反模式避免 + +- **建立個人程式碼品質標準** + +# 參考來源 \ No newline at end of file