常用代码阅读方法
2011-11-18 12:56
225 查看
Robert C.Martin在《代码整洁之道》中,强调“代码被阅读的时间,远远多于被修改的时间”。经过几个项目的实践之后,更加能够体会其中五味。本文整理了一些目前常用的代码阅读方法,以供分享和讨论。
项目文件树视图
一个实用项目,其项目文件成百上千,分布在多层次的目录中,包含编译配置文件、图片资源文件、运行参数文件、源码文件、第三方支持文件等等。就源码而言,又包含了公用头文件、模块头文件、模块实现文件等等。只靠缺省的资源管理器查看,不能很好地满足要求。
通过以下方法,可以从整体有效阅读理解项目文件。
1. 资源管理器。能够按层次查看指定目录的文件。
2. 目录展开模式。所有文件平行列出,通过字母排序、模糊查找,能够查看指定名字的文件。
3. 类展开模式。所有类平行列出,通过字符排序、模糊搜索,能够查看指定类文件,以及类包含的接口。
4. 结合过滤器,能够减少关注的文件数量。
文件结构视图
了解整个项目,及模块的关系后,随之开始文件级别的理解。一般文件包含包含头文件包含,类接口定义,类内部函数定义,类变量定义等几部分。实践时,根据功能,可能几百行或几千行。
通过以下方法,可以有效阅读单个文件。
1. 文件结构树。头文件、变量、函数,按文件中的顺序显示,如果复杂代码分区存放,有助于理解文件结构。
2. 排序显示。头文件、变量、函数全部显示,按字符排序、按类型排序、模糊查找,能够查看指定名字的符号。
函数视图
接下来,进入了长期工作的具体地点。我们的编码工作,一半以上是和函数在亲密接触。对函数的阅读方法,很大程度上影响着工作效率。
通过以下方法,可以有效阅读函数。
1. 函数定义查看。阅读函数时,遇到调用的函数,迅速查看其定义,及其上下文。
2. 函数调用关系。阅读到一个函数,迅速找出有那些调用者,或调用了哪些函数;且可以向上、或向下调用层次查看。
3. 函数查找。本文件、指定目录、整个项目的函数查找。调用位置统计视图和详细上下文的方便切换。下一个函数位置的快捷操作。
代码分类视图
终于,我们走入了实际的琐碎代码片段:关键字、全局变量、成员变量、参数变量、局部变量、宏、常量、注释等等。我们透过上下文主窗口,窥视着代码海洋的一丁点区域。
通过以下方法,可以有效观察上下文主窗口内容。
1. 类型区分。通过颜色、字体、字号等,直观区分不同类型的代码。
2. 标签。多个关联的感兴趣区域,通过标签记住,然后切换到窗口。
3. 多窗口。多个关联的感兴趣区域,通过多个窗口保留上下文,能够帮助阅读。
4. 大屏幕显示器。Mr. Bean说过:“大,就是好”。
琐碎罗列了上述阅读代码的方法。目前,只使用notepad,vi来阅读实用项目文件,已经不多了(临时快捷查看单个文件除外)。大多时候,实用专业的代码编辑工具,如SourceInsight,Eclipse,VS2010等等。这些工具支持了上述所有阅读方法,还包含更多的阅读方法:行数显示,项目统计等等。善用这些方法,必须的。
工具和阅读方法,只能在你痴心研究代码时,感觉到她的实用;而不是能帮助你理解代码。再多再好的工具和方法,也不能掩盖代码的臭味;通过多角度、深层次、立体化接触臭味,可能麻木到习惯,可能恶心致死亡,可能坚持去重构。
生活没有捷径。
参考资料
1. 《代码整洁之道》。
项目文件树视图
一个实用项目,其项目文件成百上千,分布在多层次的目录中,包含编译配置文件、图片资源文件、运行参数文件、源码文件、第三方支持文件等等。就源码而言,又包含了公用头文件、模块头文件、模块实现文件等等。只靠缺省的资源管理器查看,不能很好地满足要求。
通过以下方法,可以从整体有效阅读理解项目文件。
1. 资源管理器。能够按层次查看指定目录的文件。
2. 目录展开模式。所有文件平行列出,通过字母排序、模糊查找,能够查看指定名字的文件。
3. 类展开模式。所有类平行列出,通过字符排序、模糊搜索,能够查看指定类文件,以及类包含的接口。
4. 结合过滤器,能够减少关注的文件数量。
文件结构视图
了解整个项目,及模块的关系后,随之开始文件级别的理解。一般文件包含包含头文件包含,类接口定义,类内部函数定义,类变量定义等几部分。实践时,根据功能,可能几百行或几千行。
通过以下方法,可以有效阅读单个文件。
1. 文件结构树。头文件、变量、函数,按文件中的顺序显示,如果复杂代码分区存放,有助于理解文件结构。
2. 排序显示。头文件、变量、函数全部显示,按字符排序、按类型排序、模糊查找,能够查看指定名字的符号。
函数视图
接下来,进入了长期工作的具体地点。我们的编码工作,一半以上是和函数在亲密接触。对函数的阅读方法,很大程度上影响着工作效率。
通过以下方法,可以有效阅读函数。
1. 函数定义查看。阅读函数时,遇到调用的函数,迅速查看其定义,及其上下文。
2. 函数调用关系。阅读到一个函数,迅速找出有那些调用者,或调用了哪些函数;且可以向上、或向下调用层次查看。
3. 函数查找。本文件、指定目录、整个项目的函数查找。调用位置统计视图和详细上下文的方便切换。下一个函数位置的快捷操作。
代码分类视图
终于,我们走入了实际的琐碎代码片段:关键字、全局变量、成员变量、参数变量、局部变量、宏、常量、注释等等。我们透过上下文主窗口,窥视着代码海洋的一丁点区域。
通过以下方法,可以有效观察上下文主窗口内容。
1. 类型区分。通过颜色、字体、字号等,直观区分不同类型的代码。
2. 标签。多个关联的感兴趣区域,通过标签记住,然后切换到窗口。
3. 多窗口。多个关联的感兴趣区域,通过多个窗口保留上下文,能够帮助阅读。
4. 大屏幕显示器。Mr. Bean说过:“大,就是好”。
琐碎罗列了上述阅读代码的方法。目前,只使用notepad,vi来阅读实用项目文件,已经不多了(临时快捷查看单个文件除外)。大多时候,实用专业的代码编辑工具,如SourceInsight,Eclipse,VS2010等等。这些工具支持了上述所有阅读方法,还包含更多的阅读方法:行数显示,项目统计等等。善用这些方法,必须的。
工具和阅读方法,只能在你痴心研究代码时,感觉到她的实用;而不是能帮助你理解代码。再多再好的工具和方法,也不能掩盖代码的臭味;通过多角度、深层次、立体化接触臭味,可能麻木到习惯,可能恶心致死亡,可能坚持去重构。
生活没有捷径。
参考资料
1. 《代码整洁之道》。
相关文章推荐
- 常用代码阅读方法
- 30个php操作redis常用方法代码例子
- C# ASP.NET 最常用的通用权限的3个方法例子展示(每个功能一行代码实现)
- Java代码使用正则验证和常用工具方法
- 【代码阅读的方法与实践】第10章 代码阅读工具
- 让你提前认识软件开发(18):C语言中常用的文件操作函数总结及使用方法演示代码
- java代码优化常用方法
- 30个php操作redis常用方法代码例子
- C# ASP.NET 最常用的通用权限的3个方法例子展示(每个功能一行代码实现)
- 代码阅读总结之ASP.NET StartKit TimeTracker(自定义集合类排序(Sort())方法随笔)
- 阅读layim代码小记,实现可以更改用户签名的方法
- 简单介绍一些php操作redis常用方法代码例子
- OC 移动开发新手常用方法的汇总(含代码实例)
- python知识点(一):python检测代码效率常用方法
- PHP常用方法代码片断
- 30个php操作redis常用方法代码例子
- C# ASP.NET 最常用的通用权限的3个方法例子展示(每个功能一行代码实现)
- 提高代码阅读能力的7种方法
- jquery操作字符串常用方法总结及工作代码
- 一天安装一个mysql,不是吓唬你,哈哈,mysql问题解决方法1067 can not connect to localhost (带MySql常用错误代码表)