買這商品的人也買了...
-
$880$695 -
$580$458 -
$420$332 -
$500$425 -
$650$507 -
$281程序員修煉之道 :從小工到專家 (The Pragmatic Programmer: From Journeyman to Master)
-
$654$621 -
$390$332 -
$360$284 -
$234$222 -
$454編寫高品質代碼:改善 C程式碼的 125個建議
-
$620$484 -
$599$569 -
$403Java 併發編程:核心方法與框架 (Java Concurrent Programming Core Method and Frameworks)
-
$357漏洞戰爭:軟件漏洞分析精要
-
$250Docker 生產環境實踐指南
-
$403軟件保護及分析技術——原理與實踐
-
$580$452 -
$580$493 -
$301軟件設計重構
-
$414$393 -
$420$328 -
$400$316 -
$594$564 -
$594$564
相關主題
商品描述
<內容介紹>
本書對如何優化代碼結構做了深入的探討,分為五個部分:編程問題與原則、編程格式與風格、如何讓代碼更容易讀、如何做代碼重構和C語言的一些要素。本書對這些部分做了重點探討:代碼中存在的各種問題,編程時要遵循的原則,編程時要註重格式、註釋和名字,如何讓表達式和控制流簡單易讀,如何消除代碼中的重複冗餘,如何切分代碼和少寫代碼等。另外,本書還探討了C語言設計中的一些要素和常見問題。
<章節目錄>
第一部分編程問題與原則
第1章美的設計2
1.1美學觀點2
1.2代碼可讀2
1.3適用範圍3
第2章代碼質量4
2.1外在特性4
2.2內在特性4
2.3一個故事5
2.4提升質量5
第3章代碼問題7
3.1最混亂的7
3.2命名混亂8
3.3名實不副8
3.4格式混亂9
3.5註釋混亂9
3.6重複冗餘9
3.7臃腫龐大9
3.8晦澀難懂10
3.9過度耦合10
3.10濫用變量10
3.11嵌套太深10
3.12代碼混雜10
3.13不確定性11
3.14太多警告11
3.15雞同鴨講11
3.16過度設計11
3.17基礎不好11
3.18陳舊腐敗12
3.19停滯不前12
3.20不可擴充12
3.21最後總結12
第4章人員問題13
4.1思維定勢13
4.2思維頑固14
4.3小中見大14
4.4懶蟲心理14
4.5粗枝大葉15
4.6巧合編程15
4.7應付差事15
4.8固步自封15
4.9疲憊不堪15
4.10環境混亂16
4.11管理失職16
4.12個人性格16
第5章編程原則17
5.1高內聚低耦合17
5.2設計模式18
5.3編碼風格19
5.4幹乾淨淨19
第6章編程之道21
6.1註重質量21
6.2遵守規則22
6.3簡潔編程22
6.4整潔編程23
6.5快樂編程24
6.6團隊協作25
6.7測試驅動25
6.8考慮全局25
6.9代碼切分26
6.10代碼重構26
6.11深入學習27
6.12尋求詩意27
6.13程序員節28
第二部分編程格式與風格
第7章使用Emacs 30
7.1 Emacs介紹30
7.2 Emacs安裝31
7.3常用快捷鍵31
7.4筆者的“.emacs” 32
7.5 cua-mode 33
7.6 shell buffer 34
第8章快速排序35
8.1算法簡介35
8.2 C/ C++語言35
8.3 Java 36
8.4 Perl 36
8.5 Verilog 37
第9章格式優美39
9.1合理安排39
9.2橫向縮進40
9.3縱向對齊43
9.4順序書寫44
9.5分組成塊45
9.6添加空白46
9.7書寫語句47
9.8書寫表達式47
9.9 Verilog部分48
9.10保持一致49
9.11代碼例子50
第10章註釋合理52
10.1無用的註釋52
10.2有用的註釋58
10.3如何寫註釋62
第11章名字定義65
11.1命名方法65
11.2命名67
11.3命名規則73
11.4名字使用77
11.5 SPEC定義77
第三部分讓代碼更容易讀
第12章消除警告84
12.1不可忽視84
12.2警告 類型86
12.3打開警告87
第13章精心用變量89
13.1修改變量的名字89
13.2進行變量初始化90
13.3減少變量的個數91
13.4縮小變量作用域92
13.5減少變量的操作95
第14章表達式易讀96
14.1糟糕的表達式96
14.2使用中間變量96
14.3使用等價邏輯98
14.4簡化判斷邏輯98
14.5使用宏定義99
14.6使用查找表99
14.7註意操作符101
14.8簡潔的寫法102
第15章控制流易讀104
15.1組織直線型代碼104
15.2判斷中的表達式105
15.3判斷中的註意事項105
15.4判斷中的參數順序106
15.5判斷中的賦值語句106
15.6 if語句的邏輯順序107
15.7使用“?:” 108
15.8使用switch 108
15.9使用return 109
15.10選擇for/while 109
15.11少用do/while 110
15.12少用goto 112
15.13語句對比113
15.14減少嵌套114
15.15減少代碼117
第16章設計好函數119
16.1不好的函數119
16.2好的函數119
16.3小的函數120
16.4遞歸調用121
第四部分如何做代碼重構
第17章代碼重構124
17.1為什麼重構124
17.2重構的好處124
17.3重構的難題125
17.4實際的例子125
第18章消除重複128
18.1代碼重複的產生128
18.2代碼重複的後果128
18.3代碼重複的解決129
18.4消除重複的例子129
第19章代碼切分133
19.1抽取獨立的代碼133
19.2設計通用的代碼135
19.3簡化已有的接口137
19.4一次只做一件事138
19.5讓函數功能單一142
19.6刪除無用的代碼144
第20章少寫代碼145
20.1合適就剛剛好145
20.2保持代碼簡潔145
20.3使用循環解決146
20.4熟悉語言特性147
20.5熟悉庫函數147
20.6熟悉系統工具149
第21章簡化代碼150
21.1重新設計代碼150
21.2尋找更好算法152
第22章代碼生成155
22.1配置Linux的內核155
22.2生成寄存器的代碼156
22.3生成Benes的代碼157
第23章代碼測試161
23.1測試中問題161
23.2測試的原則162
23.3設計要更好162
23.4提高可讀性162
23.5測試智能化164
23.6定位Bug 167
第五部分C語言一些要素
第24章關鍵字170
第25章類型172
25.1內部數據類型172
25.2新增數據類型173
25.3 enum 173
25.4 struct 174
25.5 union 175
25.6 typedef 175
25.7複雜的數據類型177
25.8 Endian問題177
第26章變量179
26.1聲明和定義179
26.2變量分類179
26.3 const變量183
26.4 volatile變量185
26.5混合聲明187
第27章常量188
27.1常量類型188
27.2常量定義189
27.3常量區分189
27.4其他問題189
第28章操作190
28.1操作符表格190
28.2操作符解釋192
28.3強制進行類型轉換199
28.4運算時的類型轉換199
28.5賦值時的類型轉換203
第29章數組206
29.1數組的說明206
29.2初始化206
29.3字符串207
29.4複合常量賦值208
29.5函數中的變長數組208
29.6結構中的靈活數組209
29.7數組作為函數參數209
29.8數組和指針210
第30章指針212
30.1指針的說明212
30.2囉嗦的指針213
30.3 void * 214
30.4 restrict 215
30.5多級指針216
30.6數組指針和指針數組217
30.7函數指針和指針函數219
30.8 malloc 222
30.9 alloca 223
30.10指針使用中的問題223
第31章語句225
31.1 if 225
31.2 switch 225
31.3 for和while 226
31.4 do {...} while 226
31.5 break 227
31.6 return 228
31.7 goto 228
31.8 exit() 229
31.9複合語句229
30.10空語句229
第32章函數231
32.1 void 231
32.2 static 231
32.3 inline 231
32.4函數原型232
32.5參數可變233
32.6其他討論234
第33章庫函數235
33.1使用getopt() 235
33.2使用qsort( ) 236
33.3文件模式問題236
33.4返回值的問題238
33.5控製字符問題238
33.6緩衝區問題239
33.7可重入問題240
第34章預處理242
34.1文件包含242
34.2宏定義244
34.3條件編譯248
34.4其他命令249
34.5預處理輸出249
第35章錯誤處理250
35.1錯誤檢查和處理250
35.2封裝函數250
35.3使用斷言251
第36章內存映像254
36.1程序編譯後的section 254
36.2程序運行時的內存空間255
36.3簡單的malloc.c 255
第37章彙編語言258
37.1如非必要258
37.2熟悉ABI 259
37.3彙編例子259
第38章GCC特色261
38.1 MinGW 261
38.2執行過程262
38.3內嵌彙編262
38.4 __attribute__ 264
參考文獻266