核心:**前綴編碼型別/屬性** (如 ch=char, p=pointer, ppch=pointer to pointer to char)。
**痛點**:int i,j,k → int iI, iJ, iK;float x,y,z → float fX, fY, fZ。**絕大多數程式設計師無法忍受**。
無完美命名規範,**別試圖發明最強規則**,應制定**「多數成員滿意且能貫徹」的規則**。
| 規則 | 核心內容 | 範例/反例 |
|---|---|---|
| 3-1-1 | 直觀可讀、望文知義、免解碼。用英文單詞組合,禁漢語拼音。 | CurrentValue ✅ vs NowValue ❌ |
| 3-1-2 | 長度遵循「最小長度 × 最大資訊」。現代無長度限制,但 maxval > maxValueUntilOverflow。單字元 i,j,k 適合區域迴圈變數。 | |
| 3-1-3 | 風格與 OS/工具鏈一致。Windows: PascalCase/camelCase;Unix: snake_case。**嚴禁混用**。 | |
| 3-1-4 | 禁用僅大小寫區分的相似識別碼。 | x/X, foo/FOO ❌ |
| 3-1-5 | 禁用同名區域/全域變數 (雖作用域隔離但誤讀率高)。 | |
| 3-1-6 | 變數名 = 名詞 或 形容詞+名詞。 | value, oldValue, newValue |
| 3-1-7 | 全域函數 = 動詞 或 動詞+名詞 (動賓);成員函數 = 動詞 (省略主詞 this)。 | DrawBox() (全域) vs box->Draw() (成員) |
**以此為基石**,再擴充專案特定規則 (如 3.2 節 Windows 風格)。