當前位置:編程學習大全網 - 編程語言 - 代碼大全(第2版)的目錄

代碼大全(第2版)的目錄

前言

鳴謝

核對表目錄

表目錄

圖目錄

第1部分 打好基礎

第1章 歡迎進入軟件構建的世界

1.1 什麽是軟件構建

1.2 軟件構建為何如此重要

1.3 如何閱讀本書

關鍵點

第2章 用隱喻來更充分地理解軟件開發

2.1 隱喻的重要性

2.2 如何使用軟件隱喻

2.3 常見的軟件隱喻

軟件中的書法:寫作代碼

軟件的耕作法:培植系統

軟件的牡蠣養殖觀點:系統生長

軟件構建:建造軟件

應用軟件技術:智慧工具箱

組合各個隱喻

更多資源

關鍵點

第3章 三思而後行:前期準備

3.1 前期準備的重要性

前期準備適用於現代軟件項目嗎

準備不周全的誘因

關於開始構建之前要做前期準備的絕對有力且簡明的論據

3.2 辨明妳所從事的軟件的類型

叠代開發法對前期準備的影響

在序列式開發法和叠代式開發法之間做出選擇

3.3 問題定義的先決條件

3.4 需求的先決條件

為什麽要有正式的需求

穩定需求的神話

在構建期間處理需求變更

3.5 架構的先決條件

架構的典型組成部分

3.6 花費在前期準備上的時間長度

更多資源

關鍵點

第4章 關鍵的“構建”決策

4.1 選擇編程語言

語言描述

4.2 編程約定

4.3 妳在技術浪潮中的位置

“深入壹種語言去編程”的例子

4.4 選擇主要的構建實踐方法

關鍵點

第2部分 創建高質量的代碼

第5章 軟件構建中的設計

5.1 設計中的挑戰

設計是壹個險惡的問題

設計是個了無章法的過程(即使它能得出清爽的成果)

設計就是確定取舍和調整順序的過程

設計受到諸多限制

設計是不確定的

設計是壹個啟發式過程

設計是自然而然形成的

5.2 關鍵的設計概念

軟件的首要技術任務:管理復雜度

理想的設計特征

設計的層次

5.3 設計構造塊:啟發式方法

尋找現實世界中的對象

形成壹致的抽象

封裝實現細節

當繼承能簡化設計時就繼承

隱藏秘密(信息隱藏)

找出容易改變的區域

保持松散耦合

查閱常用的設計模式

其他的啟發式方法

關於設計啟發的總結*****

使用啟發式方法的原則

5.4 設計實踐

叠代

分而治之

自上而下和自下而上的設計方法

建立試驗性原型

合作設計

要做多少設計才夠?

記錄妳的設計成果

5.5 對流行的設計方法的評論

更多資源

軟件設計,壹般性問題

軟件設計理論

設計模式

廣義的設計

標準

關鍵點

第6章 可以工作的類

6.1 類的基礎:抽象數據類型

需要用到ADT的例子

使用ADT的益處

更多的ADT示例

在非面向對象環境中用ADT處理多份數據實例

ADT和類

6.2 良好的類接口

好的抽象

良好的封裝

6.3 有關設計和實現的問題

包含(“有壹個……”的關系)

繼承(“是壹個……”關系)

成員函數和數據成員

構造函數

6.4 創建類的原因

應該避免的類

總結:創建類的理由

與具體編程語言相關的問題

6.6 超越類:包

更多資源

關鍵點

第7章 高質量的子程序

7.1 創建子程序的正當理由

似乎過於簡單而沒必要寫成子程序的操作

總結:創建子程序的理由

7.2 在子程序層上設計

7.3 好的子程序名字

7.4 子程序可以寫多長

7.5 如何使用子程序參數

7.6 使用函數時要特別考慮的問題

什麽時候使用函數,什麽時候使用過程

設置函數的返回值

7.7 宏子程序和內聯子程序

宏子程序在使用上的限制

內聯子程序

關鍵點

第8章 防範式編程

8.1 保護程序免遭無效輸入數據的破壞

8.2 斷言

建立自己的斷言機制

使用斷言的指導建議

8.3 錯誤處理技術

健壯性與正確性

高層次設計對錯誤處理方式的影響

8.4 異常

8.5 隔離程序以免遭由錯誤造成的損害

隔離區與斷言的關系

8.6 輔助調試代碼

不要自動地把產品版本的限制強加於開發版本之上

盡早引入輔助調試的手段

采用冒進式編程

計劃移除調試輔助代碼

8.7 確定在產品代碼中該保留多少防範式代碼

8.8 防範式編程時保持防範

其他資源

關鍵點

第9章 偽代碼編程過程

9.1 創建類和子程序的步驟概述

創建壹個類的步驟

創建子程序的步驟

9.2 偽代碼

9.3 通過偽代碼編程過程創建子程序

設計子程序

編寫子程序

檢查代碼

收尾工作

根據需要重復上述步驟

9.4 偽代碼編程過程之外的其他方案

關鍵點

第3部分 變量

第10章 使用變量的壹般事項

10.1 數據認知

數據認知測試

有關數據類型的其他資源

10.2 輕松掌握變量定義

隱式聲明

10.3 變量初始化原則

10.4 作用域

使變量引用局部化

盡可能縮短變量的“存活”時間

減小作用域的壹般原則

有關縮小變量作用域的說明

10.5 持續性

10.6 綁定時間

10.7 數據類型和控制結構之間的關系

10.8 為變量指定單壹用途

關鍵點

第11章 變量名的力量

11.1 選擇好變量名的註意事項

最重要的命名註意事項

以問題為導向

最適當的名字長度

變量名字的效果範圍

變量名字中的計算值限定詞

變量名字中的常用反義詞

11.2 為特定類型的數據命名

為循環索引命名

為狀態變量命名

為臨時變量命名

為布爾變量命名

為枚舉類型命名

為常量命名

11.3 命名規則的力量

為什麽要有規則?

何時采用命名規則

正式程度

11.4 非正式命名規則

語言無關規則的指導原則

語言相關規則的指導原則

混合語言編程的註意事項

命名規則示例

11.5 標準前綴

用戶自定義類型縮寫

語義前綴

標準前綴的優點

11.6 創建具備可讀性的短名稱

壹般的縮寫指導原則

語音縮寫

有關縮寫的評論

11.7 應該避免的名稱

關鍵點

第12章 基本數據類型

12.1 使用數的普遍規則

12.2 整數

12.3 浮點數

12.4 字符和字符串

C中的字符串

12.5 布爾變量

12.6 枚舉類型

如果妳的語言裏沒有枚舉類型

12.7 命名常量

12.8 數組

12.9 創建妳自己的類型(類型別名)

為什麽創建自己的類型的示例是用Pascal和Ada寫的?

創建自定義數據類型的指導原則

關鍵點

第13章 不常見的數據類型

13.1 結構

13.2 指針

用來理解指針的例子

使用指針的壹般技巧

C++指針

C指針

13.3 全局數據

與全局數據有關的常見問題

使用全局數據的理由

只有萬不得已時才使用全局數據

用訪問子程序來取代全局數據

如何降低使用全局數據的風險

其他資源

關鍵點

第4部分 語句

第14章 組織直線型代碼

14.1 必須有明確順序的語句

14.2 順序無關的語句

使代碼易於自上而下的閱讀

把相關的語句組織在壹起

關鍵點

第15章 使用條件語句

15.1 if語句

簡單if-then語句

if-then-else語句串

15.2 case語句

為case選擇最有效的排序

使用case語句的提示

關鍵點

第16章 控制循環

16.1 選擇循環的種類

什麽時候使用while循環

什麽時候用帶退出的循環

何時使用for循環

何時使用foreach循環

16.2 循環控制

進入循環

處理好循環體

退出循環

檢查端點

使用循環變量

循環應該有多長

16.3 輕松創建循環——由內而外

16.4 循環和數組的關系

關鍵點

第17章 不常見的控制結構

17.1 子程序中的多個返回

17.2 遞歸

遞歸的例子

使用遞歸的技巧

17.3 goto

反對goto的論點

支持goto的觀點

關於goto的虛假辯論

錯誤處理和goto

goto和在else子句中的***享代碼

goto使用原則總結

17.4 對不常見控制結構的看法

其他資源

關鍵點

第18章 表驅動方法

18.1 表驅動方法使用總則

使用表驅動方法的兩個問題

18.2 直接訪問表

示例:壹個月中的天數(Days-in-Month)

示例:保險費率

例子:靈活的消息格式(Flexible-Message-Format)

構造查詢鍵值

18.3 索引表訪問(Indexed Access Tables)

18.4 階梯訪問表

18.5 表查詢的其他示例

關鍵點

第19章 壹般控制問題

19.1 布爾表達式

用true和false做布爾判斷

簡化復雜的表達式

編寫肯定形式的布爾表達式

用括號使布爾表達式更清晰

理解布爾表達式是如何求值的

按照數軸的順序編寫數值表達式

與0比較的指導原則

布爾表達式的常見問題

19.2 復合語句(塊)

19.3 空語句

19.4 馴服危險的深層嵌套

對減少嵌套層次的技術的總結

19.5 編程基礎:結構化編程

結構化編程的三個組成部分

19.6 控制結構與復雜度

復雜度的重要性

降低復雜度的壹般原則

其它類型的復雜度

關鍵點

第5部分 代碼改善

第20章 軟件質量概述

20.1 軟件質量的特性

20.2 改善軟件質量的技術

開發過程

設置目標

20.3 不同質量保障技術的相對效能

缺陷檢測率

找出缺陷的成本

修正缺陷的成本

20.4 什麽時候進行質量保證工作

20.5 軟件質量的普遍原理

推薦讀物

相關標準

關鍵點

第21章 協同構造

21.1 協同開發實踐概要

協同構造是其他質量保證技術的補充

協同構造有利於傳授公司文化以及編程專業知識

集體所有權適用於所有形式的協同構造

在構造前後都應保持協作

21.2 結對編程

成功運用結對編程的關鍵

結對編程的好處

21.3 正式檢查

妳期望檢查能夠帶來什麽結果

檢查中的人員角色

檢查的壹般步驟

檢查中的自尊心

檢查和代碼大全

檢查總結

21.4 其他類型的協同開發實踐

走查

代碼閱讀

大型演示

協同構造技術的比較

參考資料

結對編程

檢查

相關標準

關鍵點

第22章 開發者測試

22.1 開發者測試在軟件質量中的角色.. 500

構造中測試

22.2 推薦的開發者測試方法

先測試還是後測試

開發者測試的局限性

22.3 測試技巧錦囊

不完整的測試

結構化的基礎測試

數據流測試

等價類劃分

猜測錯誤

邊界值分析

幾類壞數據

幾類好數據

采用容易手工檢查的測試用例

22.4 典型錯誤

哪些類包含最多的錯誤?

錯誤的分類

不完善的構造過程引發錯誤所占的比例

妳期望能發現多少錯誤

測試本身的錯誤

22.5 測試支持工具

為測試各個類構造腳手架

Diff工具

測試數據生成器

覆蓋率監視器

數據記錄器/日誌記錄器

符號調試工具

系統幹擾器

錯誤數據庫

22.6 改善測試過程

有計劃的測試

重新測試(回歸測試)

自動化測試

22.7 保留測試記錄

個人測試記錄

推薦讀物

測試

測試腳手架

測試優先的開發

相關標準

關鍵點

第23章 調 試

23.1 調試概述

調試在軟件質量中所扮演的角色

調試效率的巨大差異

讓妳有所收獲的缺陷

壹種效率低下的調試方法

23.2 尋找缺陷

科學的調試方法

尋找缺陷的壹些小建議

語法錯誤

23.3 修正缺陷

23.4 調試中的心理因素

心理取向如何導致調試時的盲目

“心理距離”在調試中的作用

23.5 調試工具——明顯的和不那麽明顯的.. 557

源代碼比較工具

編譯器的警告消息

擴展的語法和邏輯檢查

執行性能分析器

測試框架

調試器

其它資源

關鍵點

第24章 重構

24.1 軟件進化的類型

軟件進化的哲學

24.2 重構簡介

重構的理由

拒絕重構的理由

24.3 特定的重構

數據級的重構

語句級的重構

子程序級重構

類實現的重構

類接口的重構

系統級重構

24.4 安全的重構

不宜重構的情況

24.5 重構策略

推薦讀物

關鍵點

第25章 代碼調整策略

25.1 性能概述

質量特性和性能

性能和代碼調整

25.2 代碼調整簡介

Pareto法則

壹些無稽之談

何時調整代碼

編譯器優化

25.3 蜜糖和哥斯拉

常見的低效率之源

常見操作的相對效率

25.4 性能測量

性能測量應當精確

25.5 反復調整

25.6 代碼調整方法總結

推薦讀物

算法和數據類型

關鍵點

第26章 代碼調整方法

26.1 邏輯

在知道答案後停止判斷

按照出現頻率來調整判斷順序

相似邏輯結構之間的性能比較

用查找表替代復雜表達式

使用惰性求值

26.2 循環

將判斷外提(Unswitching)

合並循環

展開

盡可能減少再循環內部做的工作

哨兵值

把最忙的循環放在最內層

削減強度

26.3 數據變換

使用整型數而不是浮點數

數組維度盡可能少

盡可能減少數組引用

使用輔助索引

使用緩存機制

26.4 表達式

利用代數恒等式

削弱運算強度

編譯時初始化

小心系統函數

使用正確的常量類型

預先算出結果

刪除公***子表達式

26.5 子程序

將函數重寫為內聯

26.6 用低級語言重寫代碼

26.7 變得越多,事情反而更沒變

推薦讀物

關鍵點

第6部分 系統考慮

第27章 程序規模對“構築”的影響

27.1 交流和規模

27.2 項目規模的範圍

27.3 項目規模對錯誤的影響

27.4 項目規模對生產率的影響

27.5 項目規模對開發活動的影響

活動比例和項目規模

程序、產品、系統和系統產品

方法論和規模

額外資源

關鍵點

第28章 管理“構築”

28.1 鼓勵良好的編碼實踐

設定標準的考慮事項

鼓勵良好的編碼實踐的技術

本書的角色

28.2 配置管理

什麽是配置管理?

需求變更和設計變更

軟件代碼變更

工具版本

機器配置

備份計劃

有關配置管理的額外資源

28.3 評估“構築”進度表

評估的方法

評估“構築”的工作量

對進度的影響

評估與控制

如果妳落後了該怎麽辦

有關軟件評估的額外資源

28.4 度量

有關軟件度量的額外資源

28.5 把程序員當人看

程序員們怎樣花費時間?

性能差異與質量差異

信仰問題

物理環境

有關“把程序員當人看”的額外資源

28.6 管理妳的管理者

有關管理構造的額外資源

相關標準

關鍵點

第29章 集成

29.1 集成方式的重要性

29.2 集成頻率——階段式集成還是增量集成

階段式集成

增量集成

增量集成的益處

29.3 增量集成的策略

自頂向下集成

自底向上集成

三明治集成

風險導向的集成

功能導向的集成

T-型集成

集成方法小結

29.4 Daily Build與冒煙測試

哪種項目能用daily build過程?

持續集成

額外資源

關鍵點

第30章 編程工具

30.1 設計工具

30.2 源代碼工具

編輯

分析代碼質量

重構源代碼

Version Control

數據詞典

30.3 可執行碼工具

產生目標碼

除錯

測試

代碼微調

30.4 工具導向的環境

30.5 打造妳自己的編程工具

項目特有的工具

腳本

30.6 工具幻境

額外資源

關鍵點

第7部分 軟件工藝

第31章 布局與風格

31.1 基本原則

布局的極端情況

格式化的基本原理

人和計算機對程序的解讀

好布局有什麽用?

把布局作為壹種信仰

良好布局的目標

31.2 布局技術

空白區

括號

31.3 布局風格

純塊結構

模仿純塊結構

使用begin - end對(大括號)指定塊邊界

行尾布局

哪種風格最優?

31.4 控制結構的布局

格式化控制結構塊的要點

其他考慮

31.5 單條語句的布局

語句長度

用空格使語句顯得清楚

格式化後續行

每行僅寫壹條語句

數據聲明的布局

31.6 註釋的布局

31.7 子程序的布局

31.8 類的布局

類接口的布局

類實現的布局

文件和程序布局

更多資源

關鍵點

第32章 自說明代碼

32.1 外部文檔

32.2 編程風格作文檔

32.3 註釋或不註釋

32.4 高效註釋之關鍵

註釋種類

高效註釋

最佳註釋量

32.5 註釋技術

註釋單行

註釋代碼段

註釋數據聲明

註釋控制結構

註釋子程序

註釋類、文件和程序

32.6 IEEE標準

軟件質量保證標準

更多資源

關鍵點

第33章 個人性格

33.1 個人性格是否和本書話題無關

33.2 聰明和謙虛

33.3 求知欲

33.4 誠實

33.5 交流與合作

33.6 創造力和紀律

33.7 偷懶

33.8 不像妳想象中那樣起作用的性格

矜持

經驗

編程狂人

33.9 習慣

更多資源

關鍵點

第34章 軟件開發藝術的有關問題

34.1 克服復雜性

34.2 精選編程過程

34.3 為人寫程序,其次才是為機器

34.4 以所用語言編程,但思路不受其約束.. 843

34.5 借助規範集中註意力

34.6 基於問題域編程

將程序劃分為不同層次的抽象

34.7 “當心落石”

34.8 反復,再反復

34.9 不要頑固不化

判斷

折中主義

試驗

關鍵點

第35章 何處有更多信息

35.1 關於軟件創建的信息

35.2 創建之外的話題

綜述資料

軟件工程綜覽

其他註釋過的參考書目

35.3 期刊

初級程序員雜誌

高級程序員雜誌

專題出版物

35.4 軟件開發者的讀書計劃

入門級

熟練級

精通級

35.5 參加專業組織

參考文獻

索引

  • 上一篇:自信高中作文素材
  • 下一篇:旋風黑鯊v2和北海巨妖v3那個音質好
  • copyright 2024編程學習大全網