高質量程序設計藝術

出版時間:2008-1  出版社:人民郵電出版社  作者:斯皮內利斯  頁數:383  字數:585000  譯者:韓東海  
Tag標簽:無  

內容概要

本書論述閱讀與編寫軟件代碼的方法,重點討論軟件代碼的質量屬性,包括了軟件系統(tǒng)的可靠性、可移植性、可用性、互操作性、適應性、可信性以及可維護性等方面。著力培養(yǎng)軟件工程師了解這些屬性的能力,并能編寫出具備這些屬性的優(yōu)質代碼。本書研究了來自于現有開源系統(tǒng)的真實示例,并提供了有意義的練習以鞏固讀者的判斷能力和技巧,使用了統(tǒng)一建模語言來繪制所有圖表?! ”緯m合各層次軟件開發(fā)人員、管理人員和測試人員閱讀。

作者簡介

世界著名程序員,曾4次在國際c語言編程大賽(IOCCC)中折桂。他是FreeBSD操作系統(tǒng)的核心開發(fā)人員之一,開發(fā)了大量開源軟件,包括所有BSD system上的sed編輯器、大受好評的建模引擎UMLGraph和C語言源碼分析與重構工具CScout.在英國理工學院獲得了軟件工程碩士和計算機科學博士學位之后,他目前任教于希臘雅典經濟管理大學,領導著一個歐盟資助的開源軟件質量協(xié)作研究項目。他是IEEE software雜志的編委和專欄作家,曾獲Usenix協(xié)會終生成就獎,也是網絡百科全書Wikipedia的一位活躍作者。出本書外,他的《代碼閱讀》一書曾獲得2004年的Jolt生產效率大獎。

書籍目錄

第1章 概述  1.1 軟件質量   1.1.1 用戶、制造者和管理者眼中的質量   1.1.2 質量屬性   1.1.3 緊張的世界  1.2 本書閱讀指南   1.2.1 排版約定   1.2.2 圖示   1.2.3 圖表   1.2.4 匯編代碼   1.2.5 練習   1.2.6 補充材料   1.2.7 工具  進階閱讀 第2章 可靠性  2.1 輸入問題  2.2 輸出問題   2.2.1 不完整輸出或輸出缺失   2.2.2 在錯誤的時刻輸出的正確結果   2.2.3 錯誤的格式  2.3 邏輯問題   2.3.1 偏差為一的錯誤與循環(huán)迭代   2.3.2 被忽視的極端情況   2.3.3 被遺漏的情況、條件測試和步驟   2.3.4 被遺漏的方法   2.3.5 多余的功能   2.3.6 曲解  2.4 計算問題   2.4.1 不正確的算法或計算   2.4.2 表達式中錯誤的操作數   2.4.3 表達式中錯誤的運算符   2.4.4 運算符優(yōu)先級問題   2.4.5 溢出、下溢和符號轉換錯誤  2.5 并發(fā)與時序問題  2.6 接口問題   2.6.1 不正確的例程或參數   2.6.2 沒有正確測試返回值   2.6.3 沒有提供錯誤檢測或恢復   2.6.4 資源泄漏   2.6.5 誤用面向對象功能  2.7 數據處理問題   2.7.1 不正確的數據初始化   2.7.2 引用錯誤的數據變量   2.7.3 越界引用   2.7.4 不正確的下標使用   2.7.5 不正確的比例或數據單位   2.7.6 不正確的數據打包與解包   2.7.7 不一致的數據  2.8 容錯   2.8.1 管理策略   2.8.2 空間冗余   2.8.3 時間冗余   2.8.4 可復原性  錦囊妙計  進階閱讀 第3章 安全性  3.1 脆弱代碼  3.2 緩沖區(qū)溢出  3.3 競態(tài)條件  3.4 問題API   3.4.1 容易出現緩沖區(qū)溢出的函數   3.4.2 格式字符串漏洞   3.4.3 路徑與命令行解釋器的元字符漏洞   3.4.4 臨時文件   3.4.5 不適合密碼用途的函數   3.4.6 可篡改數據  3.5 不可信輸入  3.6 結果驗證  3.7 數據與特權泄漏   3.7.1 數據泄漏   3.7.2 特權泄漏   3.7.3 Java的方法   3.7.4 分離特權代碼  3.8 特洛伊木馬  3.9 工具 110錦囊妙計  進階閱讀 第4章 時間性能  4.1 測量技術   4.1.1 負載評定   4.1.2 受限于I/O的任務   4.1.3 受限于內核的任務   4.1.4 受限于CPU的任務與剖析工具  4.2 算法復雜性  4.3 獨立的代碼  4.4 與操作系統(tǒng)交互  4.5 與外設交互  4.6 "不請自來"的交互  4.7 高速緩存處理   4.7.1 一個簡單的系統(tǒng)調用高速緩存  4.7.2 替換策略   4.7.3 預先計算結果  錦囊妙計  進階閱讀 第5章 空間性能  5.1 數據   5.1.1 基本數據類型   5.1.2 聚合數據類型   5.1.3 對齊   5.1.4 對象  5.2 內存組織  5.3 內存層次結構   5.3.1 主存及其高速緩存   5.3.2 磁盤高速緩存與分列內   5.3.3 交換區(qū)與基于文件的磁盤存儲 5.4 進程/操作系統(tǒng)接口   5.4.1 內存分配   5.4.2 內存映射   5.4.3 數據映射   5.4.4 代碼映射   5.4.5 訪問硬件資源   5.4.6 進程間通信  5.5 堆內存管理   5.5.1 堆碎片   5.5.2 堆剖析   5.5.3 內存泄漏   5.5.4 垃圾收集  5.6 棧內存管理   5.6.1 ??蚣堋  ?.6.2 棧空間  5.7 代碼   5.7.1 設計時   5.7.2 編碼時   5.7.3 構建時  錦囊妙計  進階閱讀 第6章 可移植性  6.1 操作系統(tǒng)  6.2 硬件與處理器體系結構   6.2.1 數據類型的屬性   6.2.2 數據存儲   6.2.3 特定于計算機的代碼  6.3 編譯器與語言擴展  6.4 圖形用戶界面  6.5 國際化與本地化   6.5.1 字符集   6.5.2 區(qū)域   6.5.3 消息  錦囊妙計  進階閱讀 第7章 可維護性  7.1 測量可維護性   7.1.1 可維護性指數   7.1.2 面向對象程序的度量   7.1.3 包的依賴度度量  7.2 可分析性   7.2.1 一致性   7.2.2 表達式的格式化   7.2.3 語句的格式化   7.2.4 命名習慣   7.2.5 語句級別的注釋   7.2.6 版本注釋   7.2.7 視覺結構:塊與縮進   7.2.8 表達式、函數與方法的長度   7.2.9 控制結構   7.2.10 布爾表達式   7.2.11 可辨認性與內聚性   7.2.12 依賴與耦合   7.2.13 代碼塊注釋   7.2.14 數據聲明注釋   7.2.15 正確的標識符名字   7.2.16 依賴的位置   7.2.17 不確定性   7.2.18 可審查性  7.3 可變性   7.3.1 識別   7.3.2 隔離  7.4 穩(wěn)定性   7.4.1 封裝與數據隱藏   7.4.2 數據抽象   7.4.3 類型檢查   7.4.4 編譯時斷言   7.4.5 運行時檢查與查看時斷  7.5 可測試性   7.5.1 單元測試   7.5.2 集成測試   7.5.3 系統(tǒng)測試   7.5.4 測試覆蓋度分析   7.5.5 偶發(fā)性測試  7.6 開發(fā)環(huán)境的影響   7.6.1 增量構建   7.6.2 調整構建性能  錦囊妙計  進階閱讀 第8章 浮點運算  8.1 浮點表示法   8.1.1 量度誤差   8.1.2 舍入   8.1.3 內存格式   8.1.4 規(guī)格化與隱含的一個位   8.1.5 階碼偏移   8.1.6 負數   8.1.7 反向規(guī)格化數   8.1.8 特殊值  8.2 舍入  8.3 溢出  8.4 下溢  8.5 相消  8.6 吸收  8.7 無效運算  錦囊妙計  進階閱讀 附錄A 源代碼致謝 參考文獻 

圖書封面

圖書標簽Tags

評論、評分、閱讀與下載


    高質量程序設計藝術 PDF格式下載


用戶評論 (總計4條)

 
 

  •   幫朋友買的,朋友很happy
  •   成為一名卓越的程序員,這本書值得一讀
  •   這本書專業(yè)詞匯多,晦澀。
  •   據說不容易看懂
 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網 手機版

京ICP備13047387號-7