书籍详情
代码阅读方法与实践
作者:(希腊)斯平内利斯 著,赵学良 译;赵学良译
出版社:清华大学出版社
出版时间:2004-03-01
ISBN:9787302080725
定价:¥45.00
购买这本书可以去
内容简介
无论从哪方面讲,代码阅读都不是一个容易的课题。在此之前,我不知道是否其他书籍曾尝试过阐述这一主题。因此,当我看到这本书时,我毫不犹豫地选择了它。阅读这本书时,我的第一反应是“这本书在介绍什么呢?”。我在阅读和理解他人的代码时,曾有过无数次这种感觉。就如同,当您遇到一段新代码时,需要花一段时间来理解与消化一样,理解与消化这本书背后的思想也要花费一些时间。实际上,我多次打开这本书,重新阅读部分内容,并将它应用到实际的环境中,从而通过具体的形式不断加深对这个课题相关理论的理解。如果您的情况和我类似,那么这本书可能很适合您。代码阅读有自身的一套技能,重要的是能够确定什么时候使用哪项技术。本书中,作者使用600多个现实的例子,向读者展示如何区分好的(和坏的)代码,如何阅读,应该注意什么,以及如何使用这些知识改进自己的代码。养成阅读高品质代码的习惯,可以提高编写代码的能力。阅读代码是程序员的基本技能,同时也是软件开发、维护、演进、审查
作者简介
暂缺《代码阅读方法与实践》作者简介
目录
第1章 导论 1
1.1 为什么以及如何阅读代码 2
1.1.1 将代码作为文献 2
1.1.2 以代码为范例 4
1.1.3 维护 4
1.1.4 演进 5
1.1.5 重用 6
1.1.6 审查 6
1.2 如何阅读本书 7
1.2.1 印刷约定 7
1.2.2 图解 8
1.2.3 练习 9
1.2.4 辅助材料 9
1.2.5 工具 10
1.2.6 大纲 10
1.2.7伟大语言的争论 10
进阶读物 11
第2章 基本编程元素 1
2.1 一个完整的程序 1
2.2 函数和全局变量 6
2.3 while循环、条件和块 9
2.4 switch语句 10
2.5 for循环 12
2.6 break和continue语句 15
2.7 字符和布尔型表达式 16
2.8 goto语句 19
2.9 小范围重构 21
2.10 do循环和整型表达式 25
2.11 再论控制结构 27
进阶读物 32
第3章 高级C数据类型 1
3.1 指针 1
3.1.1 链式数据结构 2
3.1.2 数据结构的动态分配 2
3.1.3 引用调用 2
3.1.4 数据元素的访问 4
3.1.5 数组型的参数和结果 5
3.1.6 函数指针 6
3.1.7 用作别名的指针 7
3.1.8 指针和字符串 9
3.1.9 直接内存访问 11
3.2 结构 12
3.2.1 聚合数据元素 12
3.2.2 从函数中返回多个数据元素 12
3.2.3 映射数据的组织方式 13
3.2.4 以面向对象的方式编程 14
3.3 共用体(union) 16
3.3.1 有效地利用存储空间 16
3.3.2 实现多态 17
3.3.3 访问不同的内部表达 17
3.4 动态内存分配 19
3.4.1 管理空闲内存 22
3.4.2 含有动态分配数组的结构 24
3.5 typedef声明 25
进阶读物 27
第4章 C数据结构 1
4.1 向量 1
4.2 矩阵和表 5
4.3 栈 8
4.4 队列 10
4.5 映射(map) 12
4.5.1 散列表 15
4.6 集合(Set) 16
4.7 链表 17
4.8 树 23
4.9 图(graph) 27
4.9.1 结点存储 27
4.9.2 边的表示 29
4.9.3 边的存储 30
4.9.4 图的属性 31
4.9.5 隐含结构 32
4.9.6 其他表示方法 32
进阶读物 33
第5章 高级控制流程 1
5.1 递归 1
5.2 异常 5
5.3 并行处理(parallelism) 8
5.3.1 硬件和软件并行性 8
5.3.2 控制模型 9
5.3.3 线程的实现 13
5.4 信号(signal) 15
5.5 非局部跳转(nonlocal jump) 18
5.6 宏替换 20
进阶读物 24
第6章 应对大型项目 25
6.1 设计与实现技术 25
6.2 项目的组织 26
6.3 编译过程和制作文件 29
6.4 配置 35
6.5 修订控制 38
6.6 项目的专有工具 44
6.7 测试 47
进阶读物 53
第7章 编码规范和约定 1
7.1 文件的命名及组织 1
7.2 缩进 3
7.5编排 5
7.4命名约定 7
7.5 编程实践 10
7.6 过程规范 12
进阶读物 12
第8章 文档 1
8.1 文档的类型 1
8.2 阅读文档 2
8.3 文档存在的问题 13
8.4 其他文档来源 14
8.5 常见的开放源码文档格式 16
进阶读物 21
第9章 系统构架 1
9.1 系统的结构 1
9.1.1 集中式储存库和分布式方案 2
9.1.2 数据流构架 5
9.1.3 面向对象的结构 7
9.1.4 分层构架 9
9.1.5 层次 11
9.1.6 切片(slicing) 11
9.2 控制模型 12
9.2.1 事件驱动的系统 12
9.2.2 系统管理器 15
9.2.3 状态变迁 16
9.3 元素封装 17
9.3.1 模块 17
9.3.2 命名空间 19
9.3.3 对象 21
9.3.4 泛型实现(generic implementation) 31
9.3.5 抽象数据类型 34
9.3.6 库 35
9.3.7 进程和过滤器 37
9.3.8 组件 38
9.3.9 数据储存库 39
9.4 构架重用 40
9.4.1 框架 40
9.4.2 代码向导 41
9.4.3 设计模式 42
9.4.4 领域专有的构架 44
进阶读物 46
第10章 代码阅读工具 1
10.1 正则表达式 1
10.2 用编辑器浏览代码 3
10.3 用grep搜索代码 6
10.4 找出文件的差异 12
10.5 开发自己的工具 13
10.6 用编译器来协助代码阅读 15
10.7 代码浏览器和美化器(beautifier) 18
10.8 运行期间的工具 20
10.9 非软件工具 23
可用工具及进阶读物 24
第11章 一个完整的例子 1
11.1 概况 1
11.2 攻坚计划 2
11.3 代码重用 3
11.4 测试与调试 8
11.5 文档 15
11.6 观察报告 16
附录A 代码概况 1
附录B 1
第1章:导论 1
第2章:基本编程元素 2
第3章:高级C数据类型 3
第4章:C数据结构 3
第5章:高级控制流程 5
第6章:应对大型项目 5
第7章:编码规范和约定 6
第9章:系统构架 8
第10章:代码阅读工具 9
第11章 一个完整的例子 11
参考文献 1
1.1 为什么以及如何阅读代码 2
1.1.1 将代码作为文献 2
1.1.2 以代码为范例 4
1.1.3 维护 4
1.1.4 演进 5
1.1.5 重用 6
1.1.6 审查 6
1.2 如何阅读本书 7
1.2.1 印刷约定 7
1.2.2 图解 8
1.2.3 练习 9
1.2.4 辅助材料 9
1.2.5 工具 10
1.2.6 大纲 10
1.2.7伟大语言的争论 10
进阶读物 11
第2章 基本编程元素 1
2.1 一个完整的程序 1
2.2 函数和全局变量 6
2.3 while循环、条件和块 9
2.4 switch语句 10
2.5 for循环 12
2.6 break和continue语句 15
2.7 字符和布尔型表达式 16
2.8 goto语句 19
2.9 小范围重构 21
2.10 do循环和整型表达式 25
2.11 再论控制结构 27
进阶读物 32
第3章 高级C数据类型 1
3.1 指针 1
3.1.1 链式数据结构 2
3.1.2 数据结构的动态分配 2
3.1.3 引用调用 2
3.1.4 数据元素的访问 4
3.1.5 数组型的参数和结果 5
3.1.6 函数指针 6
3.1.7 用作别名的指针 7
3.1.8 指针和字符串 9
3.1.9 直接内存访问 11
3.2 结构 12
3.2.1 聚合数据元素 12
3.2.2 从函数中返回多个数据元素 12
3.2.3 映射数据的组织方式 13
3.2.4 以面向对象的方式编程 14
3.3 共用体(union) 16
3.3.1 有效地利用存储空间 16
3.3.2 实现多态 17
3.3.3 访问不同的内部表达 17
3.4 动态内存分配 19
3.4.1 管理空闲内存 22
3.4.2 含有动态分配数组的结构 24
3.5 typedef声明 25
进阶读物 27
第4章 C数据结构 1
4.1 向量 1
4.2 矩阵和表 5
4.3 栈 8
4.4 队列 10
4.5 映射(map) 12
4.5.1 散列表 15
4.6 集合(Set) 16
4.7 链表 17
4.8 树 23
4.9 图(graph) 27
4.9.1 结点存储 27
4.9.2 边的表示 29
4.9.3 边的存储 30
4.9.4 图的属性 31
4.9.5 隐含结构 32
4.9.6 其他表示方法 32
进阶读物 33
第5章 高级控制流程 1
5.1 递归 1
5.2 异常 5
5.3 并行处理(parallelism) 8
5.3.1 硬件和软件并行性 8
5.3.2 控制模型 9
5.3.3 线程的实现 13
5.4 信号(signal) 15
5.5 非局部跳转(nonlocal jump) 18
5.6 宏替换 20
进阶读物 24
第6章 应对大型项目 25
6.1 设计与实现技术 25
6.2 项目的组织 26
6.3 编译过程和制作文件 29
6.4 配置 35
6.5 修订控制 38
6.6 项目的专有工具 44
6.7 测试 47
进阶读物 53
第7章 编码规范和约定 1
7.1 文件的命名及组织 1
7.2 缩进 3
7.5编排 5
7.4命名约定 7
7.5 编程实践 10
7.6 过程规范 12
进阶读物 12
第8章 文档 1
8.1 文档的类型 1
8.2 阅读文档 2
8.3 文档存在的问题 13
8.4 其他文档来源 14
8.5 常见的开放源码文档格式 16
进阶读物 21
第9章 系统构架 1
9.1 系统的结构 1
9.1.1 集中式储存库和分布式方案 2
9.1.2 数据流构架 5
9.1.3 面向对象的结构 7
9.1.4 分层构架 9
9.1.5 层次 11
9.1.6 切片(slicing) 11
9.2 控制模型 12
9.2.1 事件驱动的系统 12
9.2.2 系统管理器 15
9.2.3 状态变迁 16
9.3 元素封装 17
9.3.1 模块 17
9.3.2 命名空间 19
9.3.3 对象 21
9.3.4 泛型实现(generic implementation) 31
9.3.5 抽象数据类型 34
9.3.6 库 35
9.3.7 进程和过滤器 37
9.3.8 组件 38
9.3.9 数据储存库 39
9.4 构架重用 40
9.4.1 框架 40
9.4.2 代码向导 41
9.4.3 设计模式 42
9.4.4 领域专有的构架 44
进阶读物 46
第10章 代码阅读工具 1
10.1 正则表达式 1
10.2 用编辑器浏览代码 3
10.3 用grep搜索代码 6
10.4 找出文件的差异 12
10.5 开发自己的工具 13
10.6 用编译器来协助代码阅读 15
10.7 代码浏览器和美化器(beautifier) 18
10.8 运行期间的工具 20
10.9 非软件工具 23
可用工具及进阶读物 24
第11章 一个完整的例子 1
11.1 概况 1
11.2 攻坚计划 2
11.3 代码重用 3
11.4 测试与调试 8
11.5 文档 15
11.6 观察报告 16
附录A 代码概况 1
附录B 1
第1章:导论 1
第2章:基本编程元素 2
第3章:高级C数据类型 3
第4章:C数据结构 3
第5章:高级控制流程 5
第6章:应对大型项目 5
第7章:编码规范和约定 6
第9章:系统构架 8
第10章:代码阅读工具 9
第11章 一个完整的例子 11
参考文献 1
猜您喜欢