• :service@mansuo.com
  • :400-996-8551
  • :1229659099
首页>林锐著作下载>《高质量程序设计指南》第1版书稿-2002
2011-11-27
人气:19228

   《高质量程序设计指南-C++/C语言》第1版,林锐等著,电子工业出版社,2002年

     高质量程序设计是软件行业的薄弱环节,大部分企业只能依靠大量地测试和改错来提高软件产品的质量,为此付出了高昂的代价。因此,如何让程序员熟练地掌握编程技术和编程规范,在开发过程中内建高质量,是IT企业面临的主要挑战之一。
    作者以轻松幽默的笔调向读者论述了高质量软件开发方法与C++/C编程规范。它是作者多年从事软件开发工作的经验总结。
    本书前期版本部分章节,曾经在Internet上广泛流传,被国内IT企业的不少软件开发人员采用。本书的主要读者对象是IT企业的程序员和项目经理,以及大专院校的本科生和研究生。

 

 

   
第1章 高质量软件开发之道.................................................................................. 3
1.1 软件质量基本概念................................................ 2
1.1.1 如何理解软件的质量....................................... 2
1.1.2 提高软件质量的基本方法................................... 4
1.1.3 “零缺陷”理念........................................... 5
1.2 细说软件质量属性................................................ 6
1.2.1 正确性................................................... 6
1.2.2 健壮性................................................... 6
1.2.3 可靠性................................................... 7
1.2.4 性能..................................................... 8
1.2.5 易用性................................................... 8
1.2.6 清晰性................................................... 8
1.2.7 安全性................................................... 9
1.2.8 可扩展性................................................. 9
1.2.9 兼容性.................................................. 10
1.2.10 可移植性............................................... 10
1.3 人们关注的不仅是质量........................................... 10
1.3.1 质量、生产率和成本之间的关系............................ 11
1.3.2 软件过程改进基本概念.................................... 13
1.4 高质量软件开发的基本方法....................................... 15
1.4.1 建立软件过程规范........................................ 15
1.4.2 复用.................................................... 18
1.4.3 分而治之................................................ 20
1.4.4 优化与折衷.............................................. 20
1.4.5 技术评审................................................ 21
1.4.6 测试.................................................... 24
1.4.7 质量保证................................................ 26
1.4.8 改错.................................................... 27
1.5 关于软件开发的一些常识和思考................................... 29
1.5.1 有最好的编程语言吗...................................... 29
1.5.2 编程是一门艺术吗........................................ 30
1.5.3 编程时应该多使用技巧吗.................................. 30
1.5.4 换更快的计算机还是换更快的算法.......................... 30
1.5.5 错误是否应该分等级...................................... 31
1.5.6 一些错误的观念.......................................... 31
1.6 小结........................................................... 32
第2章 做好程序员............................................................................................... 37
2.1 漫谈程序员..................................................... 34
2.2 职业道德....................................................... 36
2.2.1 上班时间不干与工作无关的事情............................ 36
2.2.2 不损害集体利益.......................................... 37
2.2.3 不干危害社会的事情...................................... 37
2.3 工作态度....................................................... 39
2.3.1 认真负责................................................ 39
2.3.2 服务意识................................................ 40
2.4 高效率地工作................................................... 41
2.4.1 合理安排一天的时间...................................... 41
2.4.2 减少路上花费的时间...................................... 42
2.4.3 开会.................................................... 43
2.4.4 处理电子邮件............................................ 44
2.4.5 随时记录................................................ 44
2.5 程序员佩服什么样的项目经理..................................... 45
2.5.1 丰富的产品开发经验和比较高的技术水平.................... 45
2.5.2 懂得管事和管人.......................................... 46
2.5.3 较好的人格魅力.......................................... 46
2.6 将程序员培养成为经理........................................... 48
2.7 程序员升为项目经理后是否还要编程............................... 48
2.8 学无止境....................................................... 52
2.8.1 不断学习新技术.......................................... 52
2.8.2 提高综合才能............................................ 54
2.8.3 向错误与失败学习........................................ 56
2.9 小结........................................................... 57
第3章 编程语言发展简史.................................................................................... 63
3.1 编程语言大事记................................................. 60
3.2 Ada的故事..................................................... 64
3.3 C++的演化...................................................... 65
3.4 Borland与Microsoft之争....................................... 66
3.5 Java阵营与Microsoft的较量.................................... 67
3.6 小结........................................................... 70


第4章 C++面向对象程序设计方法概述................................................................ 77
4.1 漫谈面向对象................................................... 72
4.2 信息隐藏与类的封装特性......................................... 74
4.3 类的继承特性................................................... 74
4.4 类的组合特性................................................... 77
4.5 动态特性....................................................... 79
4.5.1 虚函数.................................................. 79
4.5.2 抽象基类................................................ 80
4.5.3 动态联编................................................ 81
4.5.4 多态性.................................................. 81
4.6 小结........................................................... 82
第5章 文件结构.................................................................................................. 91
5.1 版权和版本的声明............................................... 84
5.2 头文件的结构................................................... 85
5.3 定义文件的结构................................................. 86
5.4 头文件的作用................................................... 87
5.5 目录结构....................................................... 87
第6章 程序的版式............................................................................................... 97
6.1 空行........................................................... 90
6.2 代码行......................................................... 91
6.3 代码行内的空格................................................. 92
6.4 对齐........................................................... 93
6.5 长行拆分....................................................... 94
6.6 修饰符的位置................................................... 95
6.7 注释........................................................... 95
6.8 类的版式....................................................... 96
第7章 命名规则................................................................................................ 107
7.1 共 性规 则................................................... 100
7.2 简单的Windows应用程序命名规则................................ 102
第8章 表达式和基本语句................................................................................... 113
8.1 运算符的优先级................................................ 106
8.2 复合表达式.................................................... 107
8.3 if语句....................................................... 108
8.3.1 布尔变量与零值比较..................................... 108
8.3.2 整型变量与零值比较..................................... 108
8.3.3 浮点变量与零值比较..................................... 109
8.3.4 指针变量与零值比较..................................... 109
8.3.5 对if语句的补充说明..................................... 109
8.4 循环语句的效率................................................ 110
8.5 for语句的循环控制变量........................................ 111
8.6 switch语句................................................... 112
8.7 goto语句..................................................... 113
第9章 常量....................................................................................................... 123
9.1 为什么需要常量................................................ 116
9.2 const与#define的比较......................................... 116
9.3 常量定义规则.................................................. 117
9.4 类中的常量.................................................... 117
第10章 函数设计............................................................................................... 127
10.1 参数的规则................................................... 120
10.2 返回值的规则................................................. 121
10.3 函数内部实现的规则........................................... 124
10.4 其他建议..................................................... 125
10.5 使用断言..................................................... 125
10.6 引用与指针的比较............................................. 127
第11章 内存管理............................................................................................... 139
11.1 内存分配方式................................................. 132
11.2 常见的内存错误及其对策....................................... 132
11.3 指针与数组的对比............................................. 133
11.3.1 修改内容.............................................. 134
11.3.2 内容复制与比较........................................ 134
11.3.3 计算内存容量.......................................... 135
11.4 指针参数是如何传递内存的..................................... 136
11.5 free和delete把指针怎么啦................................... 139
11.6 动态内存会被自动释放吗....................................... 140
11.7 杜绝“野指针”............................................... 140
11.8  有了malloc/free为什么还要new/delete........................ 141
11.9 内存耗尽怎么办............................................... 143
11.10 malloc/free 的使用要点...................................... 145
11.11 new/delete 的使用要点....................................... 146
第12章 C++函数的高级特性.............................................................................. 157
12.1 函数重载的概念............................................... 150
12.1.1 重载的起源............................................ 150
12.1.2 重载是如何实现的...................................... 151
12.1.3 当心隐式类型转换导致重载函数产生二义性................ 152
12.2 成员函数的重载、覆盖与隐藏................................... 153
12.2.1 重载与覆盖............................................ 153
12.2.2 令人迷惑的隐藏规则.................................... 155
12.2.3 摆脱隐藏.............................................. 156
12.3 参数的默认值................................................. 158
12.4 运算符重载................................................... 159
12.4.1 概念.................................................. 159
12.4.2 不能被重载的运算符.................................... 160
12.5 函 数内 联.................................................. 161
12.5.1 用内联取代宏代码...................................... 161
12.5.2 内联函数的编程风格.................................... 162
12.5.3 慎用内联.............................................. 163
第13章 类的构造、析构与赋值函数................................................................... 173
13.1 构造函数与析构函数的起源..................................... 167
13.2 构造函数的初始化表........................................... 167
13.3 构造和析构的次序............................................. 170
13.4 示例:类String的构造函数与析构函数.......................... 170
13.5 不要轻视拷贝构造函数与赋值函数............................... 171
13.6 示例:类String的拷贝构造函数与赋值函数...................... 172
13.7 用偷懒的办法处理拷贝构造函数与赋值函数....................... 173
13.8 如何在派生类中实现类的基本函数............................... 174
第14章 C++ STL应用编程建议.......................................................................... 185
14.1 STL介绍..................................................... 178
14.2 容器类....................................................... 178
14.3 迭代器....................................................... 183
14.4 算法......................................................... 185
第15章 其他编程经验........................................................................................ 195
15.1 使用const提高函数的健壮性................................... 188
15.1.1 用const修饰函数的参数................................. 188
15.1.2 用const修饰函数的返回值............................... 189
15.1.3 const成员函数......................................... 190
15.2 提高程序的效率............................................... 191
15.3 一些有益的建议............................................... 191
参考文献.............................................................................................................. 193
附录A C++试题................................................................................................. 195
附录B C++/C试题的答案与评分标准................................................................. 199
附录C C++/C代码审查表................................................................................... 205
附录D 大学十年................................................................................................. 211

 

关联文档