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