注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)程序設(shè)計(jì)綜合代碼質(zhì)量

代碼質(zhì)量

代碼質(zhì)量

定 價(jià):¥89.00

作 者: (希)斯賓耐立思(Spinellis,D.)著,左飛,吳躍,李潔譯
出版社: 電子工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 軟件工程/開發(fā)項(xiàng)目管理

ISBN: 9787121174216 出版時(shí)間: 2012-07-01 包裝: 平裝
開本: 16開 頁(yè)數(shù): 512 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  Jolt大獎(jiǎng)素有"軟件業(yè)之奧斯卡"的美稱,本叢書精選自Jolt歷屆獲獎(jiǎng)圖書,以植根于開發(fā)實(shí)踐中的獨(dú)到工程思想與杰出方法論為主要甄選方向。Diomidis Spinellis首部著作《代碼閱讀》(Code Reading)旨在闡明程序員應(yīng)如何理解與修改代碼,與此不同的是,《代碼質(zhì)量》重點(diǎn)討論代碼的非功能特性,深入講述代碼如何滿足重要的非功能性需求,如可靠性、安全性、可移植性和可維護(hù)性,以及時(shí)間效率和空間效率。本書從Apache Web應(yīng)用服務(wù)器、BSD UNIX操作系統(tǒng)和HSQLDB Java數(shù)據(jù)庫(kù)等開源項(xiàng)目中攫取數(shù)百個(gè)小例子,并以實(shí)例為基準(zhǔn)點(diǎn),輔以理論分析,從實(shí)用的角度講述每個(gè)專業(yè)軟件開發(fā)人員能立即運(yùn)用的概念和技術(shù)?!洞a質(zhì)量》榮獲2007年Jolt大獎(jiǎng),適用于不同知識(shí)層次的軟件工作、程序開發(fā)和研究人員。

作者簡(jiǎn)介

  自1985年開始,本書作者DiomidisSpinellis在開發(fā)大量開創(chuàng)性的,并受到極高評(píng)價(jià)的商業(yè)和開源項(xiàng)目的過(guò)程中,一直在鉆研、發(fā)展本書中所提及的各項(xiàng)技術(shù),期間他編寫和維護(hù)的代碼行數(shù)超過(guò)25萬(wàn)行。他在英國(guó)倫敦帝國(guó)理工學(xué)院獲得了軟件工程方向的碩士學(xué)位及計(jì)算機(jī)科學(xué)博士學(xué)位。目前,他是希臘雅典經(jīng)濟(jì)與商業(yè)大學(xué)管理科學(xué)與技術(shù)系的教授。他曾撰寫過(guò)多部暢銷世界的計(jì)算機(jī)技術(shù)圖書,包括《架構(gòu)之美》、《代碼質(zhì)量》和《代碼閱讀》等。

圖書目錄

表目錄
圖目錄
原書序言
前言
第1章  導(dǎo)論 1
1.1  軟件質(zhì)量 1
1.1.1  用戶、制造者和管理者眼中的質(zhì)量 2
1.1.2  質(zhì)量屬性 4
1.1.3  緊張的世界 6
1.2  如何閱讀本書 8
1.2.1  排版約定 8
1.2.2  圖示 9
1.2.3  圖表 11
1.2.4  匯編代碼 11
1.2.5  練習(xí) 11
1.2.6  補(bǔ)充材料 12
1.2.7  工具 12
第2章  可靠性 15
2.1  輸入問(wèn)題 16
2.2  輸出問(wèn)題 19
2.2.1  不完整輸出或輸出缺失 19
2.2.2  錯(cuò)誤時(shí)刻的正確結(jié)果 22
2.2.3  錯(cuò)誤的格式 22
2.3  邏輯問(wèn)題 24
2.3.1  偏差為一的錯(cuò)誤與循環(huán)迭代 24
2.3.2  被忽視的極端情況 25
2.3.3  被遺漏的情況、條件測(cè)試或步驟 27
2.3.4  被遺漏的方法 32
2.3.5  多余的功能 35
2.3.6  誤解 37
2.4  計(jì)算問(wèn)題 39
2.4.1  不正確的算法或計(jì)算 39
2.4.2  表達(dá)式中錯(cuò)誤的操作數(shù) 41
2.4.3  表達(dá)式中不正確的運(yùn)算符 44
2.4.4  運(yùn)算符優(yōu)先級(jí)問(wèn)題 45
2.4.5  溢出、下溢和符號(hào)轉(zhuǎn)換錯(cuò)誤 46
2.5  并行性與時(shí)序問(wèn)題 48
2.6  接口問(wèn)題 53
2.6.1  不正確的例程或參數(shù) 53
2.6.2  沒(méi)有測(cè)試返回值 55
2.6.3  未做錯(cuò)誤探查或恢復(fù) 58
2.6.4  資源泄漏 60
2.6.5  面向?qū)ο蠊δ艿恼`用 63
2.7  數(shù)據(jù)處理問(wèn)題 64
2.7.1  不正確的數(shù)據(jù)初始化 64
2.7.2  引用錯(cuò)誤的數(shù)據(jù)變量 66
2.7.3  越界引用 69
2.7.4  不正確的下標(biāo)使用 72
2.7.5  不正確的比例或數(shù)據(jù)單位 73
2.7.6  錯(cuò)誤的數(shù)據(jù)打包與解包 75
2.7.7  不一致的數(shù)據(jù) 77
2.8  容錯(cuò) 79
2.8.1  管理策略 79
2.8.2  空間冗余 81
2.8.3  時(shí)間冗余 83
2.8.4  可復(fù)原性 84
第3章  安全性 93
3.1  脆弱代碼 94
3.2  緩沖區(qū)溢出 98
3.3  競(jìng)態(tài)條件 103
3.4  問(wèn)題API 106
3.4.1  容易出現(xiàn)緩沖區(qū)溢出的函數(shù) 106
3.4.2  格式字符串漏洞 108
3.4.3  路徑和命令行解釋器元字符漏洞 110
3.4.4  臨時(shí)文件 111
3.4.5  不適合做加密用途的函數(shù) 112
3.4.6  可篡改數(shù)據(jù) 114
3.5  不可信輸入 115
3.6  結(jié)果驗(yàn)證 120
3.7  數(shù)據(jù)與特權(quán)泄漏 124
3.7.1  數(shù)據(jù)泄漏 124
3.7.2  特權(quán)泄漏 128
3.7.3  Java的方案 129
3.7.4  分離特權(quán)代碼 131
3.8  特洛伊木馬 133
3.9  工具 135
第4章  時(shí)間性能 139
4.1  測(cè)量技術(shù) 143
4.1.1  負(fù)載描述 144
4.1.2  受限于I/O的任務(wù) 145
4.1.3  受限于內(nèi)核的任務(wù) 148
4.1.4  受限于CPU的任務(wù)和剖析工具 149
4.2  算法復(fù)雜性 158
4.3  獨(dú)立的代碼 163
4.4  與操作系統(tǒng)交互 167
4.5  與外設(shè)交互 173
4.6  非故意的交互 175
4.7  緩存 178
4.7.1  一個(gè)簡(jiǎn)單的系統(tǒng)調(diào)用緩存 178
4.7.2  替換策略 180
4.7.3  預(yù)先計(jì)算結(jié)果 182
第5章  空間性能 189
5.1  數(shù)據(jù) 190
5.1.1  基本數(shù)據(jù)類型 191
5.1.2  聚合數(shù)據(jù)類型 194
5.1.3  對(duì)齊 196
5.1.4  對(duì)象 202
5.2  內(nèi)存組織 206
5.3  內(nèi)存層級(jí)結(jié)構(gòu) 210
5.3.1  主存及其高速緩存 211
5.3.2  磁盤緩存和后備存儲(chǔ)器 214
5.3.3  交換區(qū)和基于文件的磁盤存儲(chǔ) 216
5.4  進(jìn)程/操作系統(tǒng)接口 217
5.4.1  內(nèi)存分配 218
5.4.2  內(nèi)存映射 219
5.4.3  數(shù)據(jù)映射 219
5.4.4  代碼映射 220
5.4.5  訪問(wèn)硬件資源 221
5.4.6  進(jìn)程間通信 222
5.5  堆內(nèi)存管理 224
5.5.1  堆碎片 225
5.5.2  堆剖析 230
5.5.3  內(nèi)存泄漏 233
5.5.4  垃圾回收 237
5.6  棧內(nèi)存管理 239
5.6.1  棧幀 240
5.6.2  ??臻g 243
5.7  代碼 248
5.7.1  設(shè)計(jì)期 250
5.7.2  編碼期 252
5.7.3  構(gòu)建期 253
第6章  可移植性 261
6.1  操作系統(tǒng) 262
6.2  硬件與處理器架構(gòu) 267
6.2.1  數(shù)據(jù)類型的屬性 267
6.2.2  數(shù)據(jù)存儲(chǔ) 269
6.2.3  特定于機(jī)器的代碼 271
6.3  編譯器與語(yǔ)言擴(kuò)展 273
6.3.1  編譯器錯(cuò)誤 273
6.4  圖形用戶界面(GUI) 277
6.5  國(guó)際化與本地化 279
6.5.1  字符集 280
6.5.2  區(qū)域 282
6.5.3  消息 285
第7章  可維護(hù)性 293
7.1  測(cè)量可維護(hù)性 294
7.1.1  可維護(hù)性指數(shù) 294
7.1.2  面向?qū)ο蟪绦虻亩攘?nbsp;300
7.1.3  包的相關(guān)性度量 309
7.2  可分析性 316
7.2.1  一致性 318
7.2.2  表達(dá)式格式化 319
7.2.3  語(yǔ)句格式化 320
7.2.4  命名慣例 321
7.2.5  語(yǔ)句級(jí)注釋 324
7.2.6  版本注釋 326
7.2.7  視覺(jué)結(jié)構(gòu):塊與縮進(jìn) 327
7.2.8  表達(dá)式、函數(shù)以及方法的長(zhǎng)度 328
7.2.9  控制結(jié)構(gòu) 331
7.2.10  布爾表達(dá)式 335
7.2.11  可辨認(rèn)性與內(nèi)聚性 337
7.2.12  依賴和耦合 339
7.2.13  代碼塊注釋 351
7.2.14  數(shù)據(jù)聲明注釋 354
7.2.15  恰當(dāng)?shù)臉?biāo)識(shí)符名字 355
7.2.16  依賴的位置 356
7.2.17  不確定性 357
7.2.18  可復(fù)查性 358
7.3  可變性 363
7.3.1  識(shí)別 363
7.3.2  分離 368
7.4  穩(wěn)定性 377
7.4.1  封裝與數(shù)據(jù)隱藏 378
7.4.2  數(shù)據(jù)抽象 381
7.4.3  類型檢查 383
7.4.4  編譯時(shí)斷言 386
7.4.5  運(yùn)行時(shí)檢查和查看時(shí)斷言 389
7.5  可測(cè)試性 390
7.5.1  單元測(cè)試 391
7.5.2  集成測(cè)試 394
7.5.3  系統(tǒng)測(cè)試 396
7.5.4  測(cè)試覆蓋度分析 398
7.5.5  偶發(fā)性測(cè)試 401
7.6  開發(fā)環(huán)境的影響 406
7.6.1  增量構(gòu)建 407
7.6.2  調(diào)整構(gòu)建性能 410
第8章  浮點(diǎn)運(yùn)算 417
8.1  浮點(diǎn)數(shù)表示 418
8.1.1  量度誤差 420
8.1.2  舍入 421
8.1.3  內(nèi)存格式 424
8.1.4  規(guī)格化和隱含的一位 425
8.1.5  階碼偏移 425
8.1.6  負(fù)數(shù) 426
8.1.7  反向規(guī)格化數(shù) 426
8.1.8  特殊值 427
8.2  舍入 428
8.3  溢出 432
8.4  下溢 434
8.5  消去 437
8.6  合并 441
8.7  無(wú)效運(yùn)算 445
附錄A  源代碼致謝人員名單 453
參考文獻(xiàn) 455表 目 錄
表2-1  測(cè)試極端情況 26
表2-2  測(cè)試一個(gè)不含尾端的非對(duì)稱范圍的例子 26
表2-3  整數(shù)量的范圍 46
表2-4  在程序生命周期不同階段所做的參數(shù)類型檢查 54
表2-5  在C++中約束類的使用 64表3-1  UNIX服務(wù)器開放網(wǎng)絡(luò)端口列表 96
表3-2  Windows工作站開放網(wǎng)絡(luò)端口列表 96
表3-3  進(jìn)行ftpd緩沖區(qū)攻擊時(shí)的棧 100
表3-4  展開棧(默認(rèn)情況) 102
表3-5  在攻擊過(guò)程中展開棧 102
表3-6  不安全的C函數(shù)及其安全的替代函數(shù) 107
表3-7  Java 2平臺(tái)SE 5.0的許可 130表4-1  用時(shí)剖析特征、診斷工具及解決方案 144
表4-2  由環(huán)境切換和進(jìn)程間通信導(dǎo)致的開銷 168
表4-3  低速外設(shè)導(dǎo)致的開銷 174表5-1  不同架構(gòu)下基本數(shù)據(jù)類型的表示 191
表5-2  AMD64架構(gòu)上結(jié)構(gòu)體元素的對(duì)齊 197
表5-3  一個(gè)程序在不同架構(gòu)和操作系統(tǒng)上的內(nèi)存布局 209
表5-4  連續(xù)的地址空間限制及相應(yīng)的解決方案 216
表5-5  構(gòu)建選項(xiàng)對(duì)程序大小的影響 254表6-1  各種開發(fā)平臺(tái)的可移植性問(wèn)題 262
表6-2  Java平臺(tái)標(biāo)準(zhǔn)字符編碼 282
表6-3  區(qū)域特定的字段 284表7-1  可維護(hù)性指數(shù)的參數(shù) 295
表7-2  WebServerConnection方法與它們使用的字段 306
表7-3  WebServerConnection類的相似(內(nèi)聚)方法與相異方法 307
表7-4  不同類型的訪問(wèn)控制下可以訪問(wèn)類成員的方法數(shù) 379表8-1  不同舍入模型的例子 422
表8-2  不同浮點(diǎn)格式的關(guān)鍵屬性 424
表8-3  導(dǎo)致異常的運(yùn)算和操作數(shù) 445
圖 目 錄
圖1-1  軟件質(zhì)量的各個(gè)方面的例子:使用中質(zhì)量、
外部質(zhì)量、內(nèi)部質(zhì)量及過(guò)程質(zhì)量 3
圖1-2  本書脈絡(luò):軟件質(zhì)量的要素 5
圖1-3  質(zhì)量特征間的沖突 7
圖1-4  標(biāo)注列表示例 9
圖1-5  基于UML的圖示符號(hào) 10圖2-1  使用評(píng)注,toString方法的反射式實(shí)現(xiàn) 21
圖2-2  借助策略模式關(guān)聯(lián)代碼和數(shù)據(jù) 30
圖2-3  使用接口實(shí)現(xiàn)創(chuàng)建處理器 30
圖2-4  對(duì)象私有資源的顯式管理 34
圖2-5  郵件傳送代理守護(hù)程序sendmail的調(diào)試代碼 37
圖2-6  通過(guò)靜態(tài)分析探查null指針引用 42
圖2-7  借助wait和notify管理資源的使用 49
圖2-8  使用有瑕疵的雙檢鎖模式 51
圖2-9  內(nèi)存泄漏與資源泄漏之間的關(guān)系 61
圖2-10  在NetBSD內(nèi)核中分配與釋放文件描述符 62
圖2-11  使用自動(dòng)產(chǎn)生的源代碼定義字體的輪廓 65
圖2-12  NetBSD源代碼中全局變量定義(左)和引用(右)的位置 67
圖2-13  NetBSD內(nèi)核全局變量所用的類型 68
圖2-14  將字節(jié)串編碼為改進(jìn)過(guò)的UTF-8格式 76
圖2-15  SCSI設(shè)備驅(qū)動(dòng)程序中一個(gè)命令序列重傳 84
圖2-16  自有故障的磁盤上恢復(fù)數(shù)據(jù) 87圖3-1  FTP守護(hù)進(jìn)程中的緩沖區(qū)溢出 99
圖3-2  PPP守護(hù)代碼中的一個(gè)競(jìng)態(tài)條件 104
圖3-3  pppd漏洞的檢查/使用時(shí)間差利用 104
圖3-4  檢查/使用時(shí)間差漏洞利用時(shí)序圖 105
圖3-5  strcpy和strcat的不安全用法 108
圖3-6  strcpy和strcat正確應(yīng)用在一個(gè)動(dòng)態(tài)分配大小的緩沖區(qū)上 108
圖3-7  不安全地清除環(huán)境變量 116
圖3-8  安全地清除環(huán)境變量 116
圖3-9  未正確檢查traceroute實(shí)現(xiàn)中的錯(cuò)誤返回值 122
圖3-10  在TCP Wrappers程序中嵌入特洛伊木馬代碼 134圖4-1  專家對(duì)于優(yōu)化代碼的警告 142
圖4-2  在HSQLDB代碼中EJP對(duì)帕累托法則的闡述 151
圖4-3  對(duì)于vfprintf函數(shù)的gprof輸出的例子 153
圖4-4  調(diào)用圖中處理時(shí)間的傳播 156
圖4-5  某些常見(jiàn)算法類別的相對(duì)性能 159
圖4-6  簡(jiǎn)單cat調(diào)用中的系統(tǒng)調(diào)用 169
圖4-7  logger調(diào)用時(shí)本地進(jìn)程間通信產(chǎn)生的系統(tǒng)調(diào)用 171
圖4-8  ping名字查詢的遠(yuǎn)程DNS進(jìn)程間通信所產(chǎn)生的系統(tǒng)調(diào)用 172
圖4-9  系統(tǒng)顛簸對(duì)運(yùn)行時(shí)性能的影響 176
圖4-10  使用用戶ID來(lái)命名緩存代碼 179
圖4-11  緩存數(shù)據(jù)庫(kù)行記錄 181圖5-1  結(jié)構(gòu)體的兩種存儲(chǔ)方式:填充以確保對(duì)齊(上),
打包以節(jié)省內(nèi)存(下) 199
圖5-2  從大到小排列結(jié)構(gòu)體元素,確保對(duì)齊且節(jié)省內(nèi)存 200
圖5-3  OpenCL算法繼承樹的UML類圖 203
圖5-4  三個(gè)OpenCL算法類的C++虛函數(shù)表 204
圖5-5  指向?qū)嵗龜?shù)據(jù)的Java對(duì)象 205
圖5-6  有著一個(gè)指向?qū)嵗龜?shù)據(jù)和類數(shù)據(jù)的句柄的Java對(duì)象 206
圖5-7  內(nèi)存資源的類型 207
圖5-8  進(jìn)程內(nèi)存組織 207
圖5-9  現(xiàn)代計(jì)算機(jī)的一個(gè)存儲(chǔ)層次結(jié)構(gòu) 211
圖5-10  100萬(wàn)個(gè)分配對(duì)象的大小分布 227
圖5-11  100萬(wàn)個(gè)分配對(duì)象的生命周期分布 227
圖5-12  用于顯示內(nèi)存碎片的內(nèi)存池快照 228
圖5-13  外部?jī)?nèi)存碎片的一個(gè)例子 229
圖5-14  內(nèi)部?jī)?nèi)存碎片的一個(gè)例子 229
圖5-15  Apache HTTP服務(wù)器內(nèi)存分配剖析 231
圖5-16  sed流編輯器的內(nèi)存剖析 232
圖5-17  valgrind內(nèi)存泄漏測(cè)試工具的報(bào)告 236
圖5-18  C正則表達(dá)式庫(kù)中的內(nèi)存泄漏 237
圖5-20  一個(gè)棧幀的內(nèi)容 242
圖5-21  棧大小的快照 244
圖5-22  數(shù)據(jù)和棧大小的關(guān)系 245
圖5-23  源文件與目標(biāo)文件大小之間的關(guān)系 249
圖5-24  ACE地址類型中的繼承 251圖6-1  使用隔離層來(lái)提供可移植性 264
圖6-2  存儲(chǔ)于小端與大端架構(gòu)上的整數(shù)0x04030201 270
圖6-3  GUI可移植性策略的例子 278
圖6-4  使用catgets接口做消息處理 287
圖6-5  使用gettext接口做消息處理 287
圖6-6  使用GNU gettext工具的消息本地化流程 288
圖6-7  在Java servlet中訪問(wèn)本地化消息 290圖7-1  測(cè)量擴(kuò)展圈復(fù)雜度 297
圖7-2  FreeBSD內(nèi)核和用戶程序的增長(zhǎng)與可維護(hù)性指標(biāo)隨時(shí)間的變化 298
圖7-3  所有FreeBSD模塊的可維護(hù)性指數(shù)分布 298
圖7-4  類的加權(quán)方法數(shù)度量:對(duì)所有的HSQLDB類(左);
不同的WMC值對(duì)應(yīng)的Eclipse類個(gè)數(shù)(右) 301
圖7-5  繼承樹深度度量:對(duì)于所有的HSQLDB類(左);
不同DIT值對(duì)應(yīng)的Eclipse類的數(shù)量(右) 302
圖7-6  HSQLDB:高DIT值的類的繼承樹度量和它們所定義的方法數(shù) 302
圖7-7  Eclipse類的子類數(shù)度量 303
圖7-8  對(duì)象類之間的耦合:對(duì)于每個(gè)HSQLDB類(左);
不同的CBO值對(duì)應(yīng)的Eclipse類的數(shù)量(右) 304
圖7-9  類的響應(yīng):對(duì)于所有的HSQLDB類(左);
不同的CBO值對(duì)應(yīng)的Eclipse類的數(shù)量(右) 305
圖7-10  方法的內(nèi)聚缺乏度:對(duì)于所有的HSQLDB類(左);
對(duì)應(yīng)于不同LCOM值的Eclipse類的個(gè)數(shù)(右) 308
圖7-11  org.hsqldb包中的公有類和私有類 310
圖7-12  Tomcat中一個(gè)不穩(wěn)定的包 311
圖7-13  Eclipse中一個(gè)穩(wěn)定的包 311
圖7-14  Eclipse的離心耦合與向心耦合之間的關(guān)系 312
圖7-15  Eclipse包(左)和第三方包(右)的不穩(wěn)定性分布 313
圖7-16  junit包的穩(wěn)定依賴 313
圖7-17  MX4J包的不太穩(wěn)定依賴 314
圖7-18  Eclipse包的不穩(wěn)定性與抽象度分布 315
圖7-19  Xerces與Eclipse間的循環(huán)依賴 316
圖7-20  所有的FreeBSD模塊可維護(hù)性指數(shù)與模塊大小的關(guān)系 329
圖7-21  65000個(gè)C函數(shù)的函數(shù)長(zhǎng)度分布 330
圖7-22  在處理用戶響應(yīng)的過(guò)程中缺乏規(guī)則性 333
圖7-23  用于處理用戶響應(yīng)的一個(gè)規(guī)則的控制結(jié)構(gòu) 333
圖7-24  在同一代碼段里不同的break和continue范圍 334
圖7-25  ed的DES CBC實(shí)現(xiàn)中的公共耦合 345
圖7-26  ed的DES CBC實(shí)現(xiàn)中的公共耦合關(guān)系 346
圖7-27  在NetBSD內(nèi)核中讀取并使用磁盤分區(qū)內(nèi)核 349
圖7-28  低帶寬X(LBX)擴(kuò)展中增量緩存的設(shè)計(jì) 359
圖7-29  低帶寬X(LBX)擴(kuò)展中增量緩存的實(shí)現(xiàn) 360
圖7-30  servlet容器各元素間不必要的關(guān)系 370
圖7-31  使用責(zé)任鏈設(shè)計(jì)模式來(lái)分離類 370
圖7-32  兩個(gè)不同的Catalina文件的公共代碼行 374
圖7-33  難以修改的格式化注釋(左)與便于修改的格式化注釋(右) 377
圖7-34  在最內(nèi)部的代碼塊中聲明變量 378
圖7-35  第7版UNIX中直接解釋目錄的數(shù)據(jù) 383
圖7-36  Java 1.5之前的代碼使用松散類型 384
圖7-37  C庫(kù)fomd實(shí)現(xiàn)中的特別單元測(cè)試 392
圖7-38  JUnit測(cè)試框架中的單元測(cè)試 393
圖7-39  Perl源代碼測(cè)試覆蓋度(左)和分支覆蓋度(右)
與測(cè)試用例執(zhí)行數(shù)的關(guān)系 400
圖7-40  正則表達(dá)式引擎中斷言的使用 402
圖7-41  包含文件依賴關(guān)系的簡(jiǎn)化圖 409
圖7-42  文檔依賴 411圖8-1  二次方程消去誤差以及對(duì)精度的影響 440
圖8-2  計(jì)算遠(yuǎn)離原點(diǎn)的三角形面積時(shí)的合并誤差 442
圖8-3  驗(yàn)證浮點(diǎn)運(yùn)算結(jié)果的代碼 448

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) hotzeplotz.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)