這樣編碼才規(guī)范—128個(gè)編碼好習(xí)慣是一款程序編碼規(guī)范教學(xué),通過(guò)16個(gè)主題,收錄了程序員應(yīng)當(dāng)遵守的128項(xiàng)基本編碼準(zhǔn)則,涉及初期設(shè)計(jì)、間隔、縮進(jìn)、標(biāo)識(shí)符名稱、運(yùn)算符使用等多個(gè)方面,并附有大量參考網(wǎng)址及文獻(xiàn),幫助開(kāi)發(fā)人員夯實(shí)基礎(chǔ),從規(guī)范的編碼操作開(kāi)始,培養(yǎng)良好的編碼習(xí)慣,助力未來(lái)技術(shù)成長(zhǎng)。
圖書(shū)目錄
第1章 基礎(chǔ)知識(shí)概述
1.1 編碼風(fēng)格 2
1.2 編碼風(fēng)格教育缺失 3
1.3 打磨編碼風(fēng)格的時(shí)機(jī) 7
1.4 必須學(xué)習(xí)編碼風(fēng)格的原因 9
1.5 編碼風(fēng)格比數(shù)學(xué)或英語(yǔ)更重要 11
1.6 所有編程語(yǔ)言都需要編碼風(fēng)格 12
1.7 選擇用C語(yǔ)言闡述編程風(fēng)格的原因 14
1.8 編碼風(fēng)格有益于編譯執(zhí)行方式和混合執(zhí)行方式 17
1.9 基于組件的軟件開(kāi)發(fā)方式與編碼風(fēng)格 20
1.10 碼農(nóng)的力量不容小覷 23
1.11 將編碼慣例文檔化以統(tǒng)一應(yīng)用 24
第2章 程序設(shè)計(jì)階段所需編碼準(zhǔn)則
2.1 遵循最新標(biāo)準(zhǔn) 28
2.2 合理限制開(kāi)發(fā)人員的規(guī)!29
2.3 維護(hù)舊程序比開(kāi)發(fā)新程序更常見(jiàn) 31
2.4 不要認(rèn)為修改程序很容易 32
2.5 慎重采用新技術(shù) 34
2.6 不要采用RAF策略 36
第3章 間隔相關(guān)編碼準(zhǔn)則
3.1 一行只寫(xiě)一條語(yǔ)句 42
3.2 區(qū)分聲明語(yǔ)句和執(zhí)行語(yǔ)句 44
3.3 區(qū)分段落 46
3.4 區(qū)分各種控制語(yǔ)句 50
3.5 區(qū)分各函數(shù) 54
3.6 運(yùn)算符前后需留出空格 61
3.7 不要在一元運(yùn)算符與操作數(shù)之間插入空格 63
3.8 分號(hào)前不要插入空格 63
3.9 不要濫用Tab鍵 64
3.10 逗號(hào)后必須插入一個(gè)空格 65
3.11 逗號(hào)后不要插入太多空格 65
3.12 變量初始化時(shí)的列對(duì)齊 66
3.13 一行只聲明一個(gè)變量 70
第4章 縮進(jìn)相關(guān)編碼準(zhǔn)則
4.1 大括號(hào)的位置 74
4.2 統(tǒng)一大括號(hào)的位置 77
4.3 內(nèi)部代碼塊需要縮進(jìn) 78
4.4 輸出部分需要縮進(jìn) 81
4.5 不要毫無(wú)意義地縮進(jìn) 84
4.6 保持縮進(jìn)程度的一致性 86
4.7 選擇合適的縮進(jìn)程度 87
4.8 不要編寫(xiě)凸出形式的代碼 88
第5章 注釋相關(guān)編碼準(zhǔn)則
5.1 多種注釋形態(tài) 92
5.2 區(qū)分單行注釋和注釋框 94
5.3 添加“變量字典編寫(xiě)專用注釋” 98
5.4 向程序插入偽代碼 100
5.5 通過(guò)注釋標(biāo)注程序目標(biāo) 102
5.6 程序起始部分必須添加頭注釋 104
5.7 在等于運(yùn)算符旁添加注釋 110
5.8 在大括號(hào)閉合處添加注釋 112
5.9 在函數(shù)內(nèi)部添加詳細(xì)介紹函數(shù)的注釋 115
5.10 注釋標(biāo)記原則 116
第6章 標(biāo)識(shí)符名稱定義相關(guān)編碼準(zhǔn)則 I
6.1 系統(tǒng)化定義變量名 118
6.2 用匈牙利表示法命名變量 119
6.3 用變量名前綴表示變量數(shù)據(jù)類型 120
6.4 用變量名前綴表示變量存儲(chǔ)類型 122
6.5 用函數(shù)名前綴表示函數(shù)功能 125
6.6 編寫(xiě)個(gè)人專屬前綴 127
第7章 標(biāo)識(shí)符名稱定義相關(guān)編碼準(zhǔn)則 II
7.1 用有意義的名稱命名 130
7.2 不要使用相似的變量名 131
7.3 在不影響含義的前提下盡可能簡(jiǎn)短命名 133
7.4 用下劃線和大小寫(xiě)區(qū)分較長(zhǎng)變量名 135
7.5 變量名不要以下劃線開(kāi)始 136
7.6 不要過(guò)度使用下劃線 137
7.7 合理使用大小寫(xiě)命名標(biāo)識(shí)符 139
7.8 不要濫用大小寫(xiě)區(qū)分 I 141
7.9 不要濫用大小寫(xiě)區(qū)分 II 142
7.10 不能用相同名稱同時(shí)命名類和變量 143
7.11 用大寫(xiě)字母表示變量名中需要強(qiáng)調(diào)的部分 144
第8章 運(yùn)算符相關(guān)編碼準(zhǔn)則
8.1 恰當(dāng)應(yīng)用條件運(yùn)算符有助于提高可讀性 146
8.2 不要憑借運(yùn)算符優(yōu)先級(jí)排列算式 147
8.3 指針運(yùn)算符應(yīng)該緊接變量名 148
8.4 慎選移位運(yùn)算,多用算術(shù)運(yùn)算 150
8.5 不要追求極端效率 151
第9章 編寫(xiě)清晰代碼所需編碼準(zhǔn)則
9.1 不要投機(jī)取巧,應(yīng)致力于編寫(xiě)清晰易懂的程序 154
9.2 切忌混淆while語(yǔ)句中關(guān)系運(yùn)算符和賦值運(yùn)算符的優(yōu)先級(jí) 156
9.3 不要進(jìn)行隱式“非零測(cè)試” 158
9.4 不要在條件表達(dá)式中使用賦值語(yǔ)句 159
9.5 避免產(chǎn)生副作用 161
9.6 函數(shù)原型中也要標(biāo)注參數(shù)的數(shù)據(jù)類型 164
9.7 形式參數(shù)也需要命名 166
9.8 必須標(biāo)注返回值的數(shù)據(jù)類型 168
9.9 留意結(jié)果值 169
9.10 在for語(yǔ)句等條件表達(dá)式中謹(jǐn)慎運(yùn)算 171
9.11 大量使用冗余括號(hào) 172
9.12 如果else語(yǔ)句使用大括號(hào),那么if語(yǔ)句也應(yīng)該使用 175
9.13 函數(shù)末尾務(wù)必編寫(xiě)return語(yǔ)句 176
第10章 編寫(xiě)可移植代碼所需編碼準(zhǔn)則
10.1 文件名不超過(guò)14個(gè)字符 178
10.2 不要在文件名中使用特殊字符 180
10.3 利用條件編譯提高可移植性 181
10.4 了解編譯器的限制 183
10.5 需考慮數(shù)據(jù)類型大小可能變化 185
10.6 不要指定絕對(duì)路徑 186
10.7 可移植性和高效性二選一 187
10.8 用數(shù)組代替指針以提高可移植性 188
10.9 選擇可移植性更好的編程語(yǔ)言 189
10.10 不要插入低級(jí)語(yǔ)言編寫(xiě)的代碼 190
第11章 編寫(xiě)精確代碼所需編碼準(zhǔn)則
11.1 計(jì)算機(jī)并不如想象得那么精確 192
11.2 需要進(jìn)行精確計(jì)算時(shí)避開(kāi)浮點(diǎn)數(shù)運(yùn)算 193
11.3 double型比f(wàn)loat型更適合精確計(jì)算 194
11.4 確認(rèn)整數(shù)型大小 197
11.5 必須明確計(jì)算單位 198
11.6 特別留意除法運(yùn)算 200
11.7 盡量避免數(shù)據(jù)類型轉(zhuǎn)換 203
11.8 精通編程語(yǔ)言的語(yǔ)法 205
11.9 留意可能出現(xiàn)的非線性計(jì)算結(jié)果 206
第12章 提升性能所需編碼準(zhǔn)則
12.1 重視性能,限制輸出 210
12.2 用簡(jiǎn)單形式改寫(xiě)運(yùn)算表達(dá)式 211
12.3 需要高效處理大文件時(shí)應(yīng)使用二進(jìn)制文件 212
12.4 了解并使用壓縮/未壓縮結(jié)構(gòu)體優(yōu)缺點(diǎn) 213
12.5 根據(jù)運(yùn)行環(huán)境選擇編程語(yǔ)言 216
12.6 根據(jù)情況選擇手段 218
12.7 選擇更優(yōu)秀的數(shù)據(jù)結(jié)構(gòu) 219
第13章 編寫(xiě)易于理解的代碼所需編碼準(zhǔn)則
13.1 不要使用goto語(yǔ)句 222
13.2 不要替換C語(yǔ)言組成要素 224
13.3 縮短過(guò)長(zhǎng)數(shù)據(jù)類型名稱 226
13.4 使用if語(yǔ)句而非三元運(yùn)算符 229
13.5 數(shù)組維數(shù)應(yīng)限制在三維之內(nèi) 230
13.6 考慮驅(qū)動(dòng)函數(shù)main函數(shù)的作用 231
13.7 將常量替換為符號(hào)常量或const形態(tài)常量 233
13.8 考慮變量聲明部分的順序 234
13.9 盡可能不使用全局變量 236
13.10 遵循KISS原則 237
第14章 用戶接口處理相關(guān)編碼準(zhǔn)則
14.1 確保保存輸入值的變量足夠大 240
14.2 轉(zhuǎn)換說(shuō)明符和參數(shù)個(gè)數(shù)應(yīng)保持一致 241
14.3 使用fgets()和sscanf()函數(shù)而非scanf()函數(shù) 243
14.4 使用fflush()函數(shù)清空標(biāo)準(zhǔn)輸入/輸出設(shè)備緩沖 245
第15章 編寫(xiě)零漏洞代碼所需編碼準(zhǔn)則
15.1 數(shù)組下標(biāo)應(yīng)從0開(kāi)始 252
15.2 置換字符串時(shí)必須使用括號(hào) 254
15.3 文件必須有開(kāi)就有關(guān) 255
15.4 不要無(wú)視編譯器的警告錯(cuò)誤 259
15.5 掌握并在編碼時(shí)防止運(yùn)行時(shí)錯(cuò)誤 260
15.6 用靜態(tài)變量聲明大數(shù)組 265
15.7 預(yù)留足夠大的存儲(chǔ)空間 267
15.8 注意信息交換引發(fā)的涌現(xiàn)效果 268
第16章 提升生產(chǎn)效率所需編碼準(zhǔn)則
16.1 在對(duì)立關(guān)系中事先確定側(cè)重于哪一方 272
16.2 慎重采用最新工具 273
16.3 記住所有標(biāo)準(zhǔn)庫(kù) 274
16.4 最大程度劃分模塊 274
16.5 明確區(qū)分術(shù)語(yǔ) 276
16.6 明確區(qū)分結(jié)構(gòu)體、枚舉體、共用體 277
16.7 明確區(qū)分概念 278
16.8 明確區(qū)分對(duì)象、類、實(shí)例 279
學(xué)習(xí)目的
避免Bug和后期重復(fù)維護(hù),簡(jiǎn)單的代碼才是好代碼!