代碼結構 代码结构

魏家明

  • 出版商: 電子工業出版社
  • 出版日期: 2016-08-01
  • 定價: CNY $49.00
  • 售價: $245
  • 貴賓價: 9.5$233
  • 語言: 簡體中文
  • 頁數: 280
  • 裝訂: 平裝
  • ISBN: 7121296039
  • ISBN-13: 9787121296031

下單後立即進貨 (2週內)

買這商品的人也買了...

產品描述

<內容介紹>

本書對如何優化代碼結構做了深入的探討,分為五個部分:編程問題與原則、編程格式與風格、如何讓代碼更容易讀、如何做代碼重構和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