常用代码阅读方法

61 篇文章 9 订阅
53 篇文章 1 订阅

           
        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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值