《代碼大全(第2版)》是著名Ⅱ暢銷書作者、《IEEESoftware》雜志前主編、具有20年編程與項目管理經(jīng)驗的SteveMcConneU十余年前的經(jīng)典著作的全新演繹:第2版做了全面的更新,增加了很多與時俱進(jìn)的內(nèi)容,包括對新語言、新的開發(fā)過程與方法論的討論,等等。這是一本百科全書式的軟件構(gòu)建手冊,涵蓋了軟件構(gòu)建活動的方方面面,尤其強(qiáng)調(diào)提高軟件質(zhì)量的種種實踐方法。
作者特別注重源代碼的可讀性,詳細(xì)討論了類和函數(shù)命名、變量命名、數(shù)據(jù)類型和控制結(jié)構(gòu)、代碼布局等編程的最基本要素,也討論了防御式編程、表驅(qū)動法、協(xié)同構(gòu)建、開發(fā)者測試、性能優(yōu)化等有效開發(fā)實踐,這些都服務(wù)于軟件的首要技術(shù)使命:管理復(fù)雜度。為了培養(yǎng)程序員編寫高質(zhì)量代碼的習(xí)慣,書中展示了大量高質(zhì)量代碼示例(以及用作對比的低質(zhì)量代碼),提高軟件質(zhì)量是降低開發(fā)成本的重要途徑。除此之外,《代碼大全(第2版)》歸納總結(jié)了來自專家的經(jīng)驗、業(yè)界研究以及學(xué)術(shù)成果,列舉了大量軟件開發(fā)領(lǐng)域的真實案例與統(tǒng)計數(shù)據(jù),提高《代碼大全(第2版)》的說服力。
《代碼大全(第2版)》中所論述的技術(shù)不僅填補(bǔ)了初級與高級編程實踐之間的空白,而且也為程序員們提供了一個有關(guān)軟件開發(fā)技術(shù)的信息來源。《代碼大全(第2版)》對經(jīng)驗豐富的程序員、技術(shù)帶頭人、自學(xué)的程序員及沒有太多編程經(jīng)驗的學(xué)生都是大有裨益的。可以說,只要您具有一定的編程基礎(chǔ),想成為一名優(yōu)秀的程序員,閱讀《代碼大全(第2版)》都不會讓您失望。
設(shè)計原本: 《計算機(jī)科學(xué)巨匠Frederick P.Brooks的反思(精裝版)》
前言
鳴謝
核對表目錄
表目錄
圖目錄
第1部分 打好基礎(chǔ)
第1章 歡迎進(jìn)入軟件構(gòu)建的世界“
1.1 什么是軟件構(gòu)建
1.2 軟件構(gòu)建為何如此重要
1.3 如何閱讀本書
第2章 用隱喻來更充分地理解軟件開發(fā)
2.1 隱喻的重要性
2.2 如何使用軟件隱喻
2.3 常見的軟件隱喻
第3章 三思而后行:前期準(zhǔn)備
3.1 前期準(zhǔn)備的重要性
3.2 辨明你所從事的軟件的類型
3.3 問題定義的先決條件
3.4 需求的先決條件
3.5 架構(gòu)的先決條件
3.6 花費在前期準(zhǔn)備上的時間長度
第4章 關(guān)鍵的“構(gòu)建”決策
4.1 選擇編程語言
4.2 編程約定
4.3 你在技術(shù)浪潮中的位置
4.4 選擇主要的構(gòu)建實踐方法
第5章 軟件構(gòu)建中的設(shè)計
5.1 設(shè)計中的挑戰(zhàn)
5.2 關(guān)鍵的設(shè)計概念
5.3 設(shè)計構(gòu)造塊:啟發(fā)式方法
5.4 設(shè)計實踐
5.5 對流行的設(shè)計方法的評論
第6章 可以工作的類
6.1 類的基礎(chǔ):抽象數(shù)據(jù)類型(ADTs)
6.2 良好的類接口
6.3 有關(guān)設(shè)計和實現(xiàn)的問題
6.4 創(chuàng)建類的原因
6.5 與具體編程語言相關(guān)的問題
6.6 超越類:包
第7章 高質(zhì)量的子程序
7.1 創(chuàng)建子程序的正當(dāng)理由
7.2 在子程序?qū)由显O(shè)計
7.3 好的子程序名字
7.4 子程序可以寫多長
7.5 如何使用子程序參數(shù)
7.6 使用函數(shù)時要特別考慮的問題
7.7 宏子程序和內(nèi)聯(lián)子程序
第8章 防御式編程
8.1 保護(hù)程序免遭非法輸入數(shù)據(jù)的破壞
8.2 斷言
8.3 錯誤處理技術(shù)
8.4 異常
8.5 隔離程序,使之包容由錯誤造成的損害
8.6 輔助調(diào)試的代碼
8.7 確定在產(chǎn)品代碼中該保留多少防御式代碼
8.8 對防御式編程采取防御的姿態(tài)
第9章 偽代碼編程過程
9.1 創(chuàng)建類和子程序的步驟概述
9.2 偽代碼
9.3 通過偽代碼編程過程創(chuàng)建子程序
9.4 偽代碼編程過程的替代方案
第3部分 變量
第10章 使用變量的一般事項
10.1 數(shù)據(jù)認(rèn)知
10.2 輕松掌握變量定義
10.3 變量初始化原則
10.4 作用域
10.5 持續(xù)性
10.6 綁定時間
10.7 數(shù)據(jù)類型和控制結(jié)構(gòu)之問的關(guān)系
10.8 為變量指定單一用途
第11章 變量名的力量
11.1 選擇好變量名的注意事項
11.2 為特定類型的數(shù)據(jù)命名
11.3 命名規(guī)則的力量
11.4 非正式命名規(guī)則
11.5 標(biāo)準(zhǔn)前綴
11.6 創(chuàng)建具備可讀性的短名字
11.7 應(yīng)該避免的名字
第12章 基本數(shù)據(jù)類型
12.1 數(shù)值概論
12.2 整數(shù)
12.3 浮點數(shù)
12.4 字符和字符串
12.5 布爾變量
12.6 枚舉類型
12.7 具名常量
12.8 數(shù)組
12.9 創(chuàng)建你自己的類型(類型別名)
第13章 不常見的數(shù)據(jù)類型
13.1 結(jié)構(gòu)體
……
第4部分 語句
第5部分 代碼改善
第6部分 系統(tǒng)考慮
第7部分 軟件工藝
參考文獻(xiàn)
索引