最重要的特点:所有的代码都在现实的开源项目中有其出处。
写给初学者的C语言源代码阅读指导手册。
有标号的部分摘自书中箴言部分。
第一章 导论
1.有选择的阅读代码,要有目标。想学习新的模式、编码风格还是满足某些需求的方法?
2.充分利用调试器、编译器的警告,系统调用跟踪器、数据库结构化查询语言的日志机制、包转储工具和Windows的信息侦查程序,定位bug
3.向系统添加新功能时,首要的任务就是找到实现类似特性的代码,将它作为待实现功能的模板。[不能再正确,一般就是最低限度找到类似的功能代码,然后照搬实现现在所需功能。]
4.阅读代码寻找重构机会时,首先从系统架构开始,然后逐步细化,能够获得最大的效益。
阅读代码的方式和原因:文献,范例,维护,严谨,重用,检查
[作者强调了阅读代码时,要带着目标,不要漫无重点。重构时可以从架构开始细化,重用时可以适度扩大粒度。]
第二章 基本编程元素
1.第一次分析程序时,main是很好的起点。
2.[运行,找到重点,基于猜测修改代码时要有验证猜测的流程,比如断言或测试用例。]
3.养成遇到库元素就去阅读相关文档的习惯,会增强阅读和编写代码的能力。
4.阅读代码时养成添加注释的习惯
第三章 高级C数据类型
1.使用全局或static局部变量的函数大多数情况下不可被重入
[第二章和第三章介绍了C的语法元素,包括控制语句以及高级特性,见目录。]
第四章 C数据结构
[用C语言表示常见数据结构]
第五章 高级控制流程
1.推理递归函数时,应从基准范例测试开始,并且论证每次递归调用如何逐渐接近非递归基准测试范例代码。
2.尾递归调用邓同一个回到函数开始处的循环。
[从目录看出,介绍的高级控制流程有递归,异常机制,并行,信号和非局部跳转宏替换都C语言针对性强]
第六章 应对大型项目
1.通过浏览源代码树来分析一个项目的组织方式。
2.源代码树经常是该应用程序的部署结构的镜像。
3.首次接触大项目,要花时间熟悉目录树结构
4.大型项目的编译过程中的一般声明皆有依赖关系来说明。依赖关系由工具程序转换成具体的编译行为。makefile通常由配置步骤动态生成。
[大项目相关知识,见目录,包括组织,编译,配置,版本控制,测试等]
第七章 编码规范和约定
[良好的开源项目都有其明确规定的风格指南]
第八章 文档
1.[文档很重要]尽可能利用任何文档,一小时代码不如一分钟文档。
2.软件需求说明是阅读和评估代码的基准。
3.系统的设计规格说明是认知代码结构的路线图
4.文档还会包含问题和bug
第九章 架构
1.深度分析一个构建于某种框架上的应用程序时,最好的方式就是对这个框架本身进行学习。
[很重要的一章,拍照存,这章介绍的内容比较系统的补缺了我所不太了解的部分。目录也很重要。]
第十章 代码阅读工具
[正则表达式,标签,grep,fgrep,diff——都不太理解,并且平台没准备好,因此实验不成功。以后用时再学。]
1.为了理解复杂的算法或者微妙的数据结构,可以选择一个平和安静的环境,并且全神贯注,不要从计算机或其他机器设备中获得任何帮助。
第十一章 完整示例
[很重要的实例,体现了如何在一个大型软件上添加一个小功能(要求很高),以后水平再好一些可以再回头学习和实践。作者详细的呈现了具体过程,包括查找可以参考的函数,如何寻找该函数相关信息,从中找出重点,从各个角度搜索来解决问题。其中解决问题部分,尤其是编译相关的部分。]
1.沿着类似的实体(类、函数、模块)来对软件进行建模,在相似的现存实体中,挑选具有不寻常名称的一个从而简化代码库中的文本搜索。
2.任何精确分析代码的企图,通常都会分支处众多的类、文件以及模块,并且快速将你淹没,因此,主动尝试将需要理解的代码减少到最小。
3.采用广度优先的搜索策略,从多个方向分析代码阅读中的问题,直到其中一个解决为止。
写给初学者的C语言源代码阅读指南
《代码阅读方法与实践》热门书评
-
值得收藏
22有用 0无用 appleleaf 2011-04-30
名气不是很大的一本书,本来觉得看看电子版就ok了,读了一半觉得值得收藏,以后再翻几遍。幸好没有绝版,得以买了一本新的。翻阅圈点了一遍,发现最后附录B的格言汇总部分包括了我圈点的多数内容,作者还是挺用心的。其中的C语言部分,本来觉得翻翻就过去了,发现作者的视角与众不同。传统的C语言描述,都介绍语法,而...
-
不妨把它当成一个reading list
12有用 2无用 TechElfe 2006-05-12
亚马逊上这本书的评价是四颗星,所以一开始还有些期待,尽管刚看了目录就觉得它不是很诱人。后来发现亚马逊上即使给它打四五颗星的,还是说了它不少不足。耐着性子用一个小时翻完这本书,发现亚马逊上指出的不足都非常中肯,比如没有重点、凌乱、只适合初学者等等。这本书中有太多莫名其妙的东西,根本就只应该出现在C语言...
-
过多C的细节,结构不清晰
7有用 0无用 蚂蚁 2010-11-19
还真不敢说是“读过”这本书,因为里面的内容跟我想要的相处甚远,只是花了时间匆匆翻过一遍。>> 太多 C 语言的细节,前面几乎都是C的基础和一些特性等。>> 本来以为Code Reading 应该是先从大处着手的,可是该书却反过来从编程语言的细节为关注点,失望。>>...
-
写给初学者的C语言源代码阅读指南
2有用 0无用 bluetingting 2014-01-16
最重要的特点:所有的代码都在现实的开源项目中有其出处。写给初学者的C语言源代码阅读指导手册。有标号的部分摘自书中箴言部分。第一章 导论1.有选择的阅读代码,要有目标。想学习新的模式、编码风格还是满足某些需求的方法?2.充分利用调试器、编译器的警告,系统调用跟踪器、数据库结构化查询语言的日志机制、包转...
-
崭新的视角
2有用 0无用 hcwang 2007-12-05
首先,阅读代码这个领域确实很少有书涉及到,作者试图阐述他阅读代码的一些经验,当然,这很值得我们参考,尤其是阅读开源代码的人,可能会从中学到很多开源项目的规范与设计方法,从而更好地去理解open source另外,我觉得这本书最重要的地方在于,一,它论述了阅读代码的重要性,我们程序员常常太醉心于写代码...

