C++ 開發規範
# C++ 開發規範
## 程式碼風格與結構
- 編寫簡潔、地道的 C++ 程式碼,包含準確範例
- 遵循現代 C++ 慣例和最佳實踐
- 適當使用物件導向、過程式或函數式程式設計模式
- 利用 STL 和標準算法進行集合操作
- 使用描述性的變數和方法名稱(如 isUserSignedIn、calculateTotal)
- 將檔案結構化為標頭檔(*.hpp)和實現檔(*.cpp),邏輯分離關注點
## 命名規範
- 類名使用 PascalCase
- 變數名和方法名使用 camelCase
- 常量和宏使用 SCREAMING_SNAKE_CASE
- 成員變數使用前綴 _ 或 m_(如 _userId、m_userId)
- 使用命名空間邏輯組織程式碼
## C++ 特性使用
- 優先使用現代 C++ 特性(auto、基於範圍的循環、智能指針)
- 使用 std::unique_ptr 和 std::shared_ptr 進行記憶體管理
- 優先使用 std::optional、std::variant、std::any 作為類型安全替代方案
- 使用 constexpr 和 const 優化編譯時計算
- 使用 std::string_view 進行唯讀字串操作,避免不必要的複製
## 錯誤處理與驗證
- 使用異常進行錯誤處理(std::runtime_error、std::invalid_argument)
- 使用 RAII 進行資源管理,避免記憶體洩漏
- 在函數邊界驗證輸入
- 使用日誌庫記錄錯誤(spdlog、Boost.Log)
## 性能優化
- 避免不必要的堆分配;優先使用基於堆疊的物件
- 使用 std::move 啟用移動語義,避免複製
- 使用 中的算法優化循環(std::sort、std::for_each)
- 使用 Valgrind 或 Perf 等工具分析和優化關鍵部分
## 關鍵慣例
- 使用智能指針而非原始指針,提高記憶體安全性
- 避免全局變數;謹慎使用單例模式
- 使用 enum class 進行強類型枚舉
- 將接口與實現分離
- 謹慎使用模板和元程式設計實現通用解決方案