高質量程序設計指南

高質量程序設計指南 pdf epub mobi txt 電子書 下載2025

出版者:電子工業齣版社
作者:林銳
出品人:博文視點
頁數:396
译者:
出版時間:2012-10
價格:65.00元
裝幀:
isbn號碼:9787121186172
叢書系列:
圖書標籤:
  • 程序設計
  • C++
  • C/C++
  • 編程
  • 計算機
  • C
  • 軟件開發
  • 經典
  • 程序設計
  • 高質量
  • 編程指南
  • 軟件開發
  • 代碼質量
  • 算法設計
  • 工程實踐
  • 開發規範
  • 係統設計
  • 可維護性
想要找書就要到 小美書屋
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

具體描述

《高質量程序設計指南:C++/C語言(第3版)(修訂版)》以輕鬆幽默的筆調嚮讀者論述瞭高質量軟件開發方法與C++/C編程規範,而這也是作者多年從事軟件開發工作的經驗總結。全書共17章,第1章到第4章重點介紹軟件質量和基本的程序設計方法;第5章到第16章重點闡述C++/C編程風格、麵嚮對象程序設計方法和一些技術專題;第17章闡述STL的原理和使用方法。

著者簡介

林銳,1973年生。1994年和1996年獲西安電子科技大學應用物理學士學位和微電子碩士學位,2000年獲浙江大學計算機應用博士學位。大學期間兩度被評為中國百名跨世紀優秀大學生,1996年獲電子工業部科技進步二等奬,1997年獲首屆中國大學生電腦大賽軟件一等奬。2000年7月加入上海貝爾有限公司,從事軟件工程、項目管理和CMM的研究推廣工作,2003年7月當選為 Alcatel 集團技術專傢(Alcatel 集團授予為保持全球技術領先地位做齣突齣貢獻的技術專傢榮譽和資格)。2004年初創建上海漫索計算機科技有限公司(http://www.mansuo.com ),緻力於創作適閤國內軟件企業需求的管理方法論和軟件産品。從2000年至今,林銳博士在程序設計、用戶界麵設計、軟件工程、項目管理、CMMI與軟件過程改進、IT企業研發管理、軟件企業管理等領域纍計齣版著作十部,擁有數十萬名讀者,成為國內軟件企業管理方法論的領先者。

韓永泉,1975年生。1994年至2001年就讀於西安電子科技大學計算機係,獲碩士學位。2001年4月加入上海大唐移動通信技術有限公司,擔任高級軟件工程師,從事電信設備網管軟件的研發工作。2004年加入北京新岸綫軟件科技有限公司,從事數字電視和手機電視相關軟件産品的設計、開發和研發管理工作,曾負責所在公司與上海漫索計算機科技有限公司閤作開展的軟件過程改進和研發管理解決方案的實施項目。2010年加入諾基亞西門子(NSN)。麵嚮對象和麵嚮組件軟件開發技術及編程技術的愛好者。

圖書目錄

第1章 高質量軟件開發之道 1
1.1 軟件質量基本概念 1
1.1.1 如何理解軟件的質量 1
1.1.2 提高軟件質量的基本方法 2
1.1.3 “零缺陷”理念 4
1.2 細說軟件質量屬性 4
1.2.1 正確性 4
1.2.2 健壯性 4
1.2.3 可靠性 5
1.2.4 性能 6
1.2.5 易用性 6
1.2.6 清晰性 7
1.2.7 安全性 7
1.2.8 可擴展性 8
1.2.9 兼容性 8
1.2.10 可移植性 8
1.3 人們關注的不僅僅是質量 9
1.3.1 質量、生産率和成本之間的關係 9
1.3.2 軟件過程改進的基本概念 10
1.4 高質量軟件開發的基本方法 13
1.4.1 建立軟件過程規範 13
1.4.2 復用 15
1.4.3 分而治之 16
1.4.4 優化與摺中 17
1.4.5 技術評審 17
1.4.6 測試 19
1.4.7 質量保證 21
1.4.8 改錯 22
1.5 關於軟件開發的一些常識和思考 23
1.5.1 有最好的編程語言嗎 23
1.5.2 編程是一門藝術嗎 23
1.5.3 編程時應該多使用技巧嗎 24
1.5.4 換更快的計算機還是換更快的算法 24
1.5.5 錯誤是否應該分等級 24
1.5.6 一些錯誤的觀念 25
1.6 小結 25
第2章 編程語言發展簡史 27
2.1 編程語言大事記 27
2.2 Ada的故事 31
2.3 C/C++發展簡史 31
2.4 Borland與Microsoft之爭 32
2.5 Java陣營與Microsoft的較量 33
2.6 小結 36
第3章 程序的基本概念 37
3.1 程序設計語言 37
3.2 語言實現 38
3.3 程序庫 40
3.4 開發環境 40
3.5 程序的工作原理 41
3.6 良好的編程習慣 42
第4章 C++/C程序設計入門 45
4.1 C++/C程序的基本概念 45
4.1.1 啓動函數main() 45
4.1.2 命令行參數 47
4.1.3 內部名稱 48
4.1.4 連接規範 49
4.1.5 變量及其初始化 51
4.1.6 C Runtime Library 52
4.1.7 編譯時和運行時的不同 52
4.1.8 編譯單元和獨立編譯技術 54
4.2 基本數據類型和內存映像 54
4.3 類型轉換 56
4.3.1 隱式轉換 56
4.3.2 強製轉換 58
4.4 標識符 60
4.5 轉義序列 61
4.6 運算符 62
4.7 錶達式 63
4.8 基本控製結構 65
4.9 選擇(判斷)結構 65
4.9.1 布爾變量與零值比較 66
4.9.2 整型變量與零值比較 67
4.9.3 浮點變量與零值比較 67
4.9.4 指針變量與零值比較 69
4.9.5 對if語句的補充說明 69
4.9.6 switch結構 70
4.10 循環(重復)結構 71
4.10.1 for語句的循環控製變量 72
4.10.2 循環語句的效率 73
4.11 結構化程序設計原理 78
4.12 goto/continue/break語句 79
4.13 示例 79
第5章 C++/C常量 85
5.1 認識常量 85
5.1.1 字麵常量 85
5.1.2 符號常量 86
5.1.3 契約性常量 87
5.1.4 枚舉常量 87
5.2 正確定義符號常量 87
5.3 const與#define的比較 88
5.4 類中的常量 89
5.5 實際應用中如何定義常量 90
第6章 C++/C函數設計基礎 95
6.1 認識函數 95
6.2 函數原型和定義 96
6.3 函數調用方式 97
6.4 認識函數堆棧 99
6.5 函數調用規範 100
6.6 函數連接規範 101
6.7 參數傳遞規則 102
6.8 返迴值的規則 104
6.9 函數內部實現的規則 107
6.10 存儲類型及作用域規則 109
6.10.1 存儲類型 109
6.10.2 作用域規則 110
6.10.3 連接類型 111
6.11 遞歸函數 113
6.12 使用斷言 116
6.13 使用const提高函數的健壯性 118
6.13.1 用const修飾函數的參數 118
6.13.2 用const修飾函數的返迴值 119
第7章 C++/C指針、數組和字符串 121
7.1 指針 121
7.1.1 指針的本質 121
7.1.2 指針的類型及其支持的運算 123
7.1.3 指針傳遞 125
7.2 數組 126
7.2.1 數組的本質 126
7.2.2 二維數組 128
7.2.3 數組傳遞 129
7.2.4 動態創建、初始化和刪除數組的方法 131
7.3 字符數組、字符指針和字符串 133
7.3.1 字符數組、字符串和''的關係 133
7.3.2 字符指針的誤區 134
7.3.3 字符串拷貝和比較 134
7.4 函數指針 134
7.5 引用和指針的比較 137
第8章 C++/C高級數據類型 141
8.1 結構(struct) 141
8.1.1 關鍵字struct與class的睏惑 141
8.1.2 使用struct 142
8.1.3 位域 145
8.1.4 成員對齊 147
8.2 聯閤(Union) 159
8.3 枚舉(Enum) 161
8.4 文件 162
第9章 C++/C編譯預處理 165
9.1 文件包含 165
9.1.1 內部包含衛哨和外部包含衛哨 165
9.1.2 頭文件包含的閤理順序 166
9.2 宏定義 166
9.3 條件編譯 169
9.3.1 #if、#elif和#else 169
9.3.2 #ifdef 和 #ifndef 170
9.4 #error 170
9.5 #pragma 171
9.6 #和##運算符 171
9.7 預定義符號常量 172
第10章 C++/C文件結構和程序版式 173
10.1 程序文件的目錄結構 173
10.2 文件的結構 174
10.2.1 頭文件的用途和結構 174
10.2.2 版權和版本信息 175
10.2.3 源文件結構 176
10.3 代碼的版式 176
10.3.1 適當的空行 176
10.3.2 代碼行及行內空格 177
10.3.3 長行拆分 178
10.3.4 對齊與縮進 179
10.3.5 修飾符的位置 180
10.3.6 注釋風格 180
10.3.7 ADT/UDT版式 181
第11章 C++/C應用程序命名規則 183
11.1 共性規則 183
11.2 簡單的Windows應用程序命名 184
第12章 C++麵嚮對象程序設計方法概述 187
12.1 漫談麵嚮對象 187
12.2 對象的概念 188
12.3 信息隱藏與類的封裝 189
12.4 類的繼承特性 193
12.5 類的組閤特性 199
12.6 動態特性 200
12.6.1 虛函數 200
12.6.2 抽象基類 201
12.6.3 動態綁定 203
12.6.4 運行時多態 206
12.6.5 多態數組 207
12.7 C++對象模型 214
12.7.1 對象的內存映像 214
12.7.2 隱含成員 224
12.7.3 C++編譯器如何處理成員函數 225
12.7.4 C++編譯器如何處理靜態成員 225
12.8 小結 226
第13章 對象的初始化、拷貝和析構 229
13.1 構造函數與析構函數的起源 229
13.2 為什麼需要構造函數和析構函數 230
13.3 構造函數的成員初始化列錶 232
13.4 對象的構造和析構次序 234
13.5 構造函數和析構函數的調用時機 235
13.6 構造函數和賦值函數的重載 236
13.7 示例:類String的構造函數和析構函數 238
13.8 何時應該定義拷貝構造函數和拷貝賦值函數 239
13.9 示例:類String的拷貝構造函數和拷貝賦值函數 240
13.10 用偷懶的辦法處理拷貝構造函數和 拷貝賦值函數 242
13.11 如何實現派生類的基本函數 243
第14章 C++函數的高級特性 247
14.1 函數重載的概念 247
14.1.1 重載的起源 247
14.1.2 重載是如何實現的 247
14.1.3 小心隱式類型轉換導緻重載函數産生二義性 249
14.2 成員函數的重載、覆蓋與隱藏 250
14.2.1 重載與覆蓋 250
14.2.2 令人迷惑的隱藏規則 251
14.2.3 擺脫隱藏 253
14.3 參數的默認值 254
14.4 運算符重載 255
14.4.1 基本概念 255
14.4.2 運算符重載的特殊性 256
14.4.3 不能重載的運算符 257
14.4.4 重載++和-- 257
14.5 函數內聯 259
14.5.1 用函數內聯取代宏 259
14.5.2 內聯函數的編程風格 260
14.5.3 慎用內聯 261
14.6 類型轉換函數 261
14.7 const成員函數 264
第15章 C++異常處理和RTTI 267
15.1 為什麼要使用異常處理 267
15.2 C++異常處理 268
15.2.1 異常處理的原理 268
15.2.2 異常類型和異常對象 269
15.2.3 異常處理的語法結構 270
15.2.4 異常的類型匹配規則 272
15.2.5 異常說明及其衝突 272
15.2.6 當異常拋齣時局部對象如何釋放 273
15.2.7 對象構造和析構期間的異常 273
15.2.8 如何使用好異常處理技術 275
15.2.9 C++的標準異常 278
15.3 虛函數麵臨的難題 278
15.4 RTTI及其構成 280
15.4.1 起源 280
15.4.2 typeid運算符 281
15.4.3 dynamic_cast<>運算符 283
15.4.4 RTTI的魅力與代價 285
第16章 內存管理 287
16.1 內存分配方式 287
16.2 常見的內存錯誤及其對策 288
16.3 指針參數是如何傳遞內存的 289
16.4 free和delete把指針怎麼啦 291
16.5 動態內存會被自動釋放嗎 292
16.6 杜絕“野指針” 292
16.7 有瞭malloc/free為什麼還要new/delete 293
16.8 malloc/free的使用要點 295
16.9 new有3種使用方式 296
16.9.1 plain new/delete 296
16.9.2 nothrow new/delete 297
16.9.3 placement new/delete 297
16.10 new/delete的使用要點 300
16.11 內存耗盡怎麼辦 301
16.12 用對象模擬指針 302
16.13 泛型指針auto_ptr 305
16.14 帶有引用計數的智能指針 306
16.15 智能指針作為容器元素 312
第17章 學習和使用STL 323
17.1 STL簡介 323
17.2 STL頭文件的分布 324
17.2.1 容器類 324
17.2.2 泛型算法 325
17.2.3 迭代器 325
17.2.4 數學運算庫 325
17.2.5 通用工具 325
17.2.6 其他頭文件 326
17.3 容器設計原理 326
17.3.1 內存映像 326
17.3.2 存儲方式和訪問方式 327
17.3.3 順序容器和關聯式容器的比較 328
17.3.4 如何遍曆容器 331
17.3.5 存儲空間重分配問題 332
17.3.6 什麼樣的對象纔能作為STL容器的元素 333
17.4 迭代器 334
17.4.1 迭代器的本質 334
17.4.2 迭代器失效及其危險性 337
17.4.3 如何在遍曆容器的過程中正確刪除元素 346
17.5 存儲分配器 347
17.6 適配器 349
17.7 泛型算法 352
17.8 一些特殊的容器 355
17.8.1 string類 356
17.8.2 bitset並非set 356
17.8.3 節省存儲空間的vector<bool> 358
17.8.4 空容器 360
17.9 STL容器特徵總結 361
17.10 STL使用心得 364
附錄A C++/C試題 367
附錄B C++/C試題答案與評分標準 371
附錄C 大學十年 377
附錄D 《大學十年》後記 395
附錄E 術語與縮寫解釋 397
· · · · · · (收起)

讀後感

評分

西电前辈写的,是一本有特色的国产技术书,比现在市面上好多互相抄来抄去的书要好出很多。在传统C++语法书之外,这本书可以辅助我们对一些内容进行再次的深刻认识。书里面有一些编程规范的东西,对于写程序的人来说,还是不错的,可以培养好的编码习惯。最后附了林锐的自传——...  

評分

代码可维护性对于产品级代码是很重要的,现在的观点认为代码首先是给人看的,然后才是机器运行,这本书对代码编写质量做了非常详细的描述,也是在国内比较早出版的,对我有很重要的影响. 现在这方面的书很多了,不过本书的质量也属于上乘.对于编程经验不是很多的人来说难度适...  

評分

整本书是比较实用的,编写出来的代码也会非常漂亮。 但问题是,这种代码编写的规范不该由coder来执行,而应该是一个自动的代码规范器来完成。 C++本来就是很恶心的语言,如果coder每天没日没夜的按照林博士说的来打空格和{},不知会降低多少工作效率。 但总体来说,这本书仍然...  

評分

难得的技术方面的简体中文好书,看的我那叫一个那啥...... 在学校里广闻林锐师兄的光辉事迹,并影响了班里的一群哥们儿,大四一年里专业课N多不过,成群结队拿着林锐的《大学十年》跑去找辅导员想办法,虽然我一次也没这么干过,因为我深知一点:他是辅导员又不是副导演?!不...  

評分

西电前辈写的,是一本有特色的国产技术书,比现在市面上好多互相抄来抄去的书要好出很多。在传统C++语法书之外,这本书可以辅助我们对一些内容进行再次的深刻认识。书里面有一些编程规范的东西,对于写程序的人来说,还是不错的,可以培养好的编码习惯。最后附了林锐的自传——...  

用戶評價

评分

乾貨不多

评分

適閤中級水平,多看幾遍,實踐、體會、學習

评分

書間斷著大概看瞭一個月,全當復習C++,不過裏麵還有好多陌生的知識。一直忍著沒讀附錄的大學十年,今天終於讀完瞭。好像一個老師正正經經上瞭一學期課,最後一節課突然說瞭特彆真誠地說瞭自己的大學時代。

评分

很不錯,但是不適閤新手,看完瞭這本書再去看《C++編程思想》會比較輕鬆

评分

乾貨不多

本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 book.quotespace.org All Rights Reserved. 小美書屋 版权所有