高質量程序設計指南

高質量程序設計指南 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语言之父的书吧 哈工大计算机大二倒数第一名飘过  

評分

记得毕业的时候,我把书里面的每个细节都验证一遍,用了不到一周时间,就把书看完了,那是我看书效果最好的一次体验,BTA过了两个(当然我之前肯定基础不错),非常系统的讲了一遍,至少能过掉应该生招聘的除了算法以外的所有笔试题吧,当时想得是以后我也要向他一样好好读书,...  

評分

进阶书籍,有关内存、指针、OO部分都挺不错的 边看边写,发现自己还是眼高手低,不过看完之后,发现做掉林锐博士一开始出的题目已经不在话下了 当然,本书后面参考列表中有很多不错的进阶c++书籍,也值得一览  

評分

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

評分

很适合刚走上工作岗位的人,和那些不注意编程习惯的人。提的东西比较广、很重要,可惜讲的不太深,看完这本书以后建议找更多的读物来深入理解。 比较有趣的是,有些公司招聘可能会用到里面的内容…… 每个软件公司都应当有自己的编码规范,遵照执行即可,用不着争论和本书的...  

用戶評價

评分

深入淺齣把代碼與計算機內部的關係講的明明白白,語言幽默確實是C語言相關的好書

评分

國內講解編程語言的書 暫時沒發現比林銳這本更經典的瞭

评分

國內講解編程語言的書 暫時沒發現比林銳這本更經典的瞭

评分

深入淺齣把代碼與計算機內部的關係講的明明白白,語言幽默確實是C語言相關的好書

评分

當你看到書裏麵有--編譯器會balabala,鏈接器會balabala的時候,注意瞭,這兩個作者純粹是在猜,而且大多數時候猜的不對不準確..

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

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