出版時間:2013-8 出版社:電子工業(yè)出版社 作者:王洪亮
Tag標(biāo)簽:無
內(nèi)容概要
寫得不好的代碼有各種各樣的問題,會給讀者帶來不好的閱讀體驗,并且如果代碼寫得不夠好,文檔和代碼不一致,注釋和代碼不一致,那么對維護(hù)人員來說,理解代碼和進(jìn)入項目組都是有困難的。如果代碼寫得不夠好,就需要擴(kuò)展功能,修改Bug時所需要花費的時間也較長。
自表達(dá)代碼是一種采用接近于自然語言的方式書寫代碼的主張。
代碼可讀性、可擴(kuò)展性、可測試性是關(guān)聯(lián)代碼質(zhì)量的重要參考指標(biāo)。本書從各個角度來分析產(chǎn)生劣質(zhì)代碼的原因,并從代碼的命名、注釋、風(fēng)格、結(jié)構(gòu)、架構(gòu)等方面著手,對提高設(shè)計能力、熟悉開發(fā)環(huán)境、了解編程語言、提高英語能力等諸多方面提出了具體的改善建議。
書籍目錄
第1章 劣質(zhì)代碼帶來的劣質(zhì)體驗 1
1.1 代碼的可讀性問題 1
1.1.1 命名類問題 2
1.1.2 注釋類問題 6
1.1.3 風(fēng)格類問題 8
1.1.4 結(jié)構(gòu)類問題 11
1.1.5 架構(gòu)類問題 18
1.2 代碼的可測試性問題 22
1.3 代碼的可維護(hù)性問題 22
1.3.1 需求變更難以應(yīng)對 23
1.3.2 糾纏不清的Bug 23
第2章 劣質(zhì)代碼是怎么產(chǎn)生的 25
2.1 理論知識匱乏 25
2.2 對編程語言不熟悉 29
2.3 對開發(fā)環(huán)境不熟悉 31
2.4 對設(shè)計方法不了解 32
2.5 編程習(xí)慣不佳 32
2.6 英語能力不足 35
2.7 管理人員誤導(dǎo) 36
第3章 自表達(dá)代碼 39
第4章 理論知識的補(bǔ)充 41
4.1 面向?qū)ο蟮幕A(chǔ)知識 41
4.1.1 封裝 41
4.1.2 繼承 42
4.1.3 多態(tài) 44
4.2 設(shè)計的基本原則 45
4.2.1 單一職責(zé)原則 45
4.2.2 開放封閉原則 46
4.2.3 里氏代換原則 48
4.2.4 接口分離原則 48
4.2.5 依賴倒置原則 49
4.2.6 迪米特法則 50
4.2.7 不要重復(fù)你自己 51
4.3 圈復(fù)雜度 52
第5章 編程環(huán)境的熟悉 53
5.1 保存動作與自動格式化 53
5.2 快速修復(fù) 58
5.2.1 缺少類 59
5.2.2 缺少方法 60
5.2.3 缺少變量 61
5.2.4 類型不匹配 62
5.3 重構(gòu) 63
5.3.1 改名 64
5.3.2 改變方法簽名 68
5.3.3 提取方法 69
5.3.4 移動 73
5.3.5 引入?yún)?shù)對象 76
5.3.6 引入接口 77
5.3.7 向上提取 78
5.3.8 提取常量 81
5.3.9 局部變量變?yōu)橛蜃兞?82
5.3.10 引入工廠 82
5.4 自動完成 83
5.5 大綱 84
5.6 Eclipse快捷鍵 86
第6章 編程語言的學(xué)習(xí) 88
6.1 注解 88
6.2 異常 94
6.3 反射 97
6.4 泛型 100
第7章 設(shè)計方法的學(xué)習(xí) 101
7.1 設(shè)計模式 101
7.2 依賴注入 102
7.3 Map的妙用 103
7.4 采用位掩碼減少類的個數(shù) 107
7.5 List處理Z-Order 110
第8章 英文能力的提升 113
8.1 詞性 113
8.2 時態(tài) 115
8.3 語法 116
8.4 否定詞 117
8.5 成對詞 119
8.6 近義詞 120
8.7 前綴、后綴 120
8.8 縮寫 122
8.9 正確用詞 122
第9章 編程習(xí)慣的改進(jìn) 124
9.1 命名方面的改進(jìn) 124
9.1.1 命名的基本原則 124
9.1.2 包的命名 125
9.1.3 接口的命名 125
9.1.4 類的命名 125
9.1.5 注解的命名 126
9.1.6 枚舉的命名 126
9.1.7 方法的命名 127
9.1.8 變量 129
9.1.9 常量的命名 130
9.1.10 相似的命名 130
9.2 注釋方面的改進(jìn) 131
9.2.1 JavaDoc 131
9.2.2 TODO、FIXME和XXX 132
9.2.3 其他注釋 133
9.2.4 方法的注釋 133
9.2.5 類的注釋 133
9.2.6 版權(quán)聲明 134
9.3 風(fēng)格方面的改進(jìn) 135
9.3.1 縮進(jìn)與對齊 135
9.3.2 空格與空行 138
9.3.3 行長與換行 140
9.4 結(jié)構(gòu)方面的改進(jìn) 140
9.4.1 縮短長判定 140
9.4.2 縮短長分支 144
9.4.3 減少參數(shù)個數(shù) 148
9.4.4 減少嵌套的層數(shù) 150
9.4.5 去掉重復(fù)代碼 152
9.4.6 分離曖昧關(guān)系 155
9.4.7 多維度變化 156
9.4.8 縮短長方法 158
9.4.9 正則表達(dá)式 158
9.4.10 自相似對象 160
9.4.11 同質(zhì)化處理 161
9.5 架構(gòu)方面的改進(jìn) 162
9.5.1 MVC 162
9.5.2 包含關(guān)系 164
9.5.3 繼承關(guān)系 164
9.5.4 包的劃分 165
9.5.5 內(nèi)部類、內(nèi)部接口及內(nèi)部枚舉 166
9.5.6 匿名類 167
9.5.7 有限取值范圍 168
第10章 測試代碼的自表達(dá)改進(jìn) 174
10.1 測試代碼的可讀性 175
10.2 測試代碼的可維護(hù)性 179
10.3 測試代碼的可擴(kuò)展性 179
10.4 測試語法 180
第11章 Lambda表達(dá)式 182
11.1 filter 183
11.2 forEach 183
11.3 findAny與findFirst 184
11.4 sorted 184
11.5 uniqueElements 185
附錄 186
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載