TOP
0
0
【簡體曬書區】 單本79折,5本7折,活動好評延長至5/31,趕緊把握這一波!
代碼大全(第2版)(簡體書)
滿額折

代碼大全(第2版)(簡體書)

人民幣定價:128 元
定  價:NT$ 768 元
優惠價:87668
絕版無法訂購
相關商品
商品簡介
作者簡介
名人/編輯推薦
目次

商品簡介

代碼大全(第2版)是Ⅱ暢銷書作者、《IEEESoftware》雜志前主編、具有20年編程與項目管理經驗的SteveMcConneU十余年前的經典著作的全新演繹:第2版做了全面的更新,增加了很多與時俱進的內容,包括對新語言、新的開發過程與方法論的討論,等等。這是一本百科全書式的軟件構建手冊,涵蓋了軟件構建活動的方方面面,尤其強調提高軟件質量的種種實踐方法。作者特別注重源代碼的可讀性,詳細討論了類和函數命名、變量命名、數據類型和控制結構、代碼布局等編程的基本要素,也討論了防御式編程、表驅動法、協同構建、開發者測試、性能優化等有效開發實踐,這些都服務于軟件的技術使命:管理復雜度。為了培養程序員編寫高質量代碼的習慣,書中展示了大量高質量代碼示例(以及用作對比的低質量代碼),提高軟件質量是降低開發成本的重要途徑。除此之外,本書歸納總結了來自專家的經驗、業界研究以及學術成果,列舉了大量軟件開發領域的真實案例與統計數據,提高本書的說服力。本書中所論述的技術不僅填補了初級與高級編程實踐之間的空白,而且也為程序員們提供了一個有關軟件開發技術的信息來源。本書對經驗豐富的程序員、技術帶頭人、自學的程序員及沒有太多編程經驗的學生都是大有裨益的。可以說,只要您具有一定的編程基礎,想成為一名的程序員,閱讀本書都不會讓您失望。兩屆震撼大獎得主,數十年軟件開發智慧,十二年前的經典,十二年后再鑄輝煌!

作者簡介

史蒂夫·邁克康奈爾(Steve McConnell)被公認為軟件開發社區中的首要作者和發言人之一。他是Construx Software公司的首席軟件工程師。他所編著的圖書包括曾被《軟件開發》雜志授予優異產品震撼大獎的《代碼大全》和《快速軟件開發》,以及《軟件項目生存指南》和《專業軟件開發》等等。

名人/編輯推薦









推薦購買:


《成為技術》:掌握全面解決問題的方法





程序開發心理學(銀年紀念版)


顛覆完美軟件:軟件測試必須知道的幾件事


《像外行一樣思考,像專家一樣實踐》——科研成功之道(修訂版)


編碼:隱匿在計算機軟硬件背后的語言(永不退色的計算機科學經典著作)

代碼構建也兼具藝術性和思想性!




《代碼大全(第二版)》經典重塑,2011版,仍然是一本完整的軟件構建手冊,涵蓋了軟件構建過程中的所有細節!是IT暢銷書作者Steve McConnell十一年前的經典著作的全新演繹,該作者是兩屆Software Development
Magzine Jolt Award震撼大獎得主。





兩屆震撼大獎得主,數十年軟件開發智慧,十二年前的經典,十二年后再鑄輝煌!


《代碼大全(第二版)》好評如潮,詳細評論請點擊——





...…' src='img37../36/9/9149517-1_f.jpg' />代碼大全(第二版)(兩屆Softwa...



5星595人參與評分









70%









24%









4%









0%









0%




只有購自的用戶才能參與評分






《設計原本(精裝版)》



目次

前言
鳴謝
核對表目錄
表目錄
圖目錄
第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 參加專業組織
參考文獻
索引

您曾經瀏覽過的商品

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 668
絕版無法訂購

暢銷榜

客服中心

收藏

會員專區