优质广告供应商

广告是为了更好地支持作者创作

如何提高阅读源代码的能力?

@johnniechau 推荐的《代码阅读方法和实践》,是一本好书,我只打算在这里简单的聊一聊自己的经验与思考。

我们先假设一种最恶劣的状况,你被迫接手一个遗留项目,原来做项目的家伙,全都四散逃亡了,不但没有任何说明文档,而且还找不到人,老板给你一段并不宽裕的时间,你得读懂他们的代码,然后接着维护……通常,这是噩梦的开始。

当然,从提高能力的角度而言,这是一个好机会。所以,@刘立 虽然只说了两个字“压力”,我认为的确正中要害!

我们可以用拼图这样的游戏,来做一个比喻。一地的碎片,你如何将他们尽快的拼在一起?

  • 寻找边角的块(除了四边都是凹凸的块之外,其他有一到两条边是直线的块,会少得多,也更容易辨认与拼接。)
  • 将碎块按大的色块分类,从一次查找,变成二次查找。
  • 一开始碎块最多的时候,是最困难的时候,需要足够的耐心、细心,以及一点点的运气。
  • 如果你的记忆力足够的好,碰到的碎块能够在脑子里留下一定的印象,那么有助于你快速找到匹配的碎块。
  • 经验能够帮助你提高效率,熟能生巧。

回到代码阅读,我们来做一个类比:

  • 寻找代码中最明显的入手处,比如main函数,core文件夹,model、view、controller的三种大类等等。
  • 从理解文件夹、文件名开始,而不是一上来就埋头进入源代码之中。
  • 一个好的全文搜索工具,能够帮你找到相关的代码与片段,渐渐的,看起来一团乱麻的代码,就会显现出各种可以被理解的关联出来。
  • 记忆力总是有用的,在脑子里绘出整个系统的架构,并且补充越来越的,越来越清晰的细节。
  • 一样是熟能生巧。
  • 相比拼图,代码阅读还要容易一些,你不需要理解全部的代码,有一个大致的理解以后,就可以先放过一些不太重要的细节。

另外推荐阅读我目前正在写作的一份文档《借助开源项目,学习软件开发》——第五章:理解开源项目:link

<下略>

原文发布于:2013-02-19 @ 知乎

优质广告供应商

广告是为了更好地支持作者创作

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 166,813评论 24 703
  • 从百度文库下载下来的,这里保存一份 别人的原代码程序员怎样阅读 源码就是指编写的最原始程序的代码。 运行的软件是要...
    Albert陈凯阅读 3,016评论 0 15
  • 优质广告供应商

    广告是为了更好地支持作者创作

  • 一 是一个人在家看电视,突然大笑,发 现家里会有回音。 ...
    惨绿青年n阅读 86评论 3 2
  • 方法一,splice方法 splice() 方法用于插入、删除或替换数组的元素。 例如: var arr = [1...
    Howie223阅读 8,351评论 0 0
  • 很想写小说,一个很普通的人,很平凡的故事。人物有了梗概,但故事又不知从何说起,太过简单的流水账似的生活简单重复,波...
    心向大海阅读 191评论 3 0