图书介绍

高质量程序设计艺术PDF|Epub|txt|kindle电子书版本网盘下载

高质量程序设计艺术
  • (希腊)DIOMIDIS SPINELLIS著;韩东海译 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:9787115167934
  • 出版时间:2008
  • 标注页数:384页
  • 文件大小:35MB
  • 文件页数:399页
  • 主题词:程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

高质量程序设计艺术PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 概述1

1.1 软件质量1

1.1.1 用户、制造者和管理者眼中的质量1

1.1.2 质量属性4

1.1.3 紧张的世界6

1.2 本书阅读指南7

1.2.1 排版约定8

1.2.2 图示9

1.2.3 图表10

1.2.4 汇编代码10

1.2.5 练习10

1.2.6 补充材料10

1.2.7 工具11

进阶阅读11

第2章 可靠性12

2.1 输入问题12

2.2 输出问题15

2.2.1 不完整输出或输出缺失15

2.2.2 在错误的时刻输出的正确结果17

2.2.3 错误的格式18

2.3 逻辑问题19

2.3.1 偏差为一的错误与循环迭代19

2.3.2 被忽视的极端情况20

2.3.3 被遗漏的情况、条件测试和步骤21

2.3.4 被遗漏的方法26

2.3.5 多余的功能28

2.3.6 曲解30

2.4 计算问题32

2.4.1 不正确的算法或计算32

2.4.2 表达式中错误的操作数33

2.4.3 表达式中错误的运算符35

2.4.4 运算符优先级问题36

2.4.5 溢出、下溢和符号转换错误37

2.5 并发与时序问题39

2.6 接口问题43

2.6.1 不正确的例程或参数43

2.6.2 没有正确测试返回值45

2.6.3 没有提供错误检测或恢复47

2.6.4 资源泄漏49

2.6.5 误用面向对象功能52

2.7 数据处理问题52

2.7.1 不正确的数据初始化52

2.7.2 引用错误的数据变量54

2.7.3 越界引用57

2.7.4 不正确的下标使用58

2.7.5 不正确的比例或数据单位60

2.7.6 不正确的数据打包与解包62

2.7.7 不一致的数据63

2.8 容错64

2.8.1 管理策略65

2.8.2 空间冗余66

2.8.3 时间冗余68

2.8.4 可复原性69

锦囊妙计72

进阶阅读75

第3章 安全性77

3.1 脆弱代码78

3.2 缓冲区溢出81

3.3 竞态条件85

3.4 问题API87

3.4.1 容易出现缓冲区溢出的函数87

3.4.2 格式字符串漏洞89

3.4.3 路径与命令行解释器的元字符漏洞90

3.4.4 临时文件91

3.4.5 不适合密码用途的函数92

3.4.6 可篡改数据94

3.5 不可信输入94

3.6 结果验证99

3.7 数据与特权泄漏102

3.7.1 数据泄漏102

3.7.2 特权泄漏104

3.7.3 Java的方法106

3.7.4 分离特权代码107

3.8 特洛伊木马108

3.9 工具110

锦囊妙计111

进阶阅读112

第4章 时间性能113

4.1 测量技术117

4.1.1 负载评定117

4.1.2 受限于I/O的任务118

4.1.3 受限于内核的任务120

4.1.4 受限于CPU的任务与剖析工具121

4.2 算法复杂性128

4.3 独立的代码133

4.4 与操作系统交互135

4.5 与外设交互141

4.6 “不请自来”的交互142

4.7 高速缓存处理144

4.7.1 一个简单的系统调用高速缓存145

4.7.2 替换策略146

4.7.3 预先计算结果148

锦囊妙计150

进阶阅读151

第5章 空间性能153

5.1 数据154

5.1.1 基本数据类型155

5.1.2 聚合数据类型157

5.1.3 对齐159

5.1.4 对象163

5.2 内存组织167

5.3 内存层次结构170

5.3.1 主存及其高速缓存171

5.3.2 磁盘高速缓存与分列内存173

5.3.3 交换区与基于文件的磁盘存储175

5.4 进程/操作系统接口176

5.4.1 内存分配176

5.4.2 内存映射177

5.4.3 数据映射178

5.4.4 代码映射178

5.4.5 访问硬件资源179

5.4.6 进程间通信180

5.5 堆内存管理181

5.5.1 堆碎片182

5.5.2 堆剖析187

5.5.3 内存泄漏189

5.5.4 垃圾收集193

5.6 栈内存管理195

5.6.1 栈框架195

5.6.2 栈空间198

5.7 代码203

5.7.1 设计时205

5.7.2 编码时206

5.7.3 构建时207

锦囊妙计209

进阶阅读211

第6章 可移植性213

6.1 操作系统214

6.2 硬件与处理器体系结构218

6.2.1 数据类型的属性218

6.2.2 数据存储219

6.2.3 特定于计算机的代码221

6.3 编译器与语言扩展222

6.4 图形用户界面226

6.5 国际化与本地化227

6.5.1 字符集228

6.5.2 区域230

6.5.3 消息232

锦囊妙计237

进阶阅读237

第7章 可维护性239

7.1 测量可维护性239

7.1.1 可维护性指数240

7.1.2 面向对象程序的度量244

7.1.3 包的依赖度度量252

7.2 可分析性258

7.2.1 一致性259

7.2.2 表达式的格式化260

7.2.3 语句的格式化261

7.2.4 命名习惯262

7.2.5 语句级别的注释264

7.2.6 版本注释265

7.2.7 视觉结构:块与缩进266

7.2.8 表达式、函数与方法的长度267

7.2.9 控制结构270

7.2.10 布尔表达式273

7.2.11 可辨认性与内聚性275

7.2.12 依赖与耦合277

7.2.13 代码块注释286

7.2.14 数据声明注释289

7.2.15 正确的标识符名字290

7.2.16 依赖的位置290

7.2.17 不确定性291

7.2.18 可审查性292

7.3 可变性297

7.3.1 识别297

7.3.2 隔离300

7.4 稳定性308

7.4.1 封装与数据隐藏308

7.4.2 数据抽象311

7.4.3 类型检查313

7.4.4 编译时断言315

7.4.5 运行时检查与查看时断言317

7.5 可测试性318

7.5.1 单元测试319

7.5.2 集成测试321

7.5.3 系统测试323

7.5.4 测试覆盖度分析325

7.5.5 偶发性测试327

7.6 开发环境的影响331

7.6.1 增量构建332

7.6.2 调整构建性能334

锦囊妙计335

进阶阅读338

第8章 浮点运算341

8.1 浮点表示法341

8.1.1 量度误差343

8.1.2 舍入344

8.1.3 内存格式346

8.1.4 规格化与隐含的一个位347

8.1.5 阶码偏移347

8.1.6 负数348

8.1.7 反向规格化数348

8.1.8 特殊值349

8.2 舍入350

8.3 溢出353

8.4 下溢354

8.5 相消357

8.6 吸收360

8.7 无效运算363

锦囊妙计367

进阶阅读368

附录A 源代码致谢369

参考文献371

热门推荐