如何阅读大型代码库?

转载 2013年12月03日 14:05:25

Casey问我:“对于新手,有什么有针对性的诀窍来阅读大型代码库吗?”

碰巧,我认为这是一个非常好的问题。我觉得想要成为一个优秀的开发者,阅读代码库并弄清清楚内部是怎么回事的能力非常重要。在你的职业生涯中你会中途加入一个现有的项目并被要求迅速融入进去。或者,甚至更难,会有一个项目丢给你让你自己一个人搞清楚。

最坏的情景就是你被带入一个项目,要你替换掉让工程运行失败的“那些肆无忌惮的*杂种”,并且让工程运行起来。不过更常见的情景是你被要求维护一个已经离职的员工写的代码库。最后,当然,如果你用了任何开源的项目,很大的可能是被要求“你可以扩展它让它也能做这个功能吗?”亦或者你只是好奇。

尤其是新手程序员,我强烈建议阅读代码库,看看以下我是怎么做的,然后你需要实际的去阅读代码。

当我接触到新的代码库时,我常常忽略文档和表面的细节。目的是摒弃先入为主的关于它怎么运行的想法。我试图从文件结构上找出项目的结构。仅仅这个就能告诉你很多,我常常试图找出它的结构。这是整个系统的核心吗?它是怎么分割的?等等。

之后我会找到最底层的代码然后开始阅读。我常常用字典序来读。找到一个文件,读完它,然后读下一个文件。我尽量记录下来关于这些东西是如何连接在一起的(你可以在博客里找到关于记笔记的例子),但我做的最多的找到对这个代码的感觉。有很多代码常常是项目风格的一部分,比如预处理检查,日志记录,抓取错误等等。你可以先了解这部分内容,之后就可以忽略它们阅读有趣的部分。

我通常不在某一点上阅读太深,我会试图宏观的找到感觉。比如:这个文件通过调用Y和Z返回了X,但在这个点上阅读每一个细节对我来讲并不真的重要。哦对了,我还记录笔记,很多笔记。往往它们不是真的笔记而更像是问题清单,在这里我理解的越多,加入的问题和写入的回答也就更多。在阅读完我能找到的最底层代码之后,我会做一个纵向的比较。这是最让我能弄清楚事情是如何布局和工作的。这就意味着下一次我来看这部分的时候,对于代码结构我会有更好的想法。

接下来,我会找有意思的部分。系统当中对我有意思的部分而不是被我束之高阁的部分。

这部分内容很多,但其实要做的并不多。我仅仅是通读一遍代码首先找到结构,之后我会认真研读独一无二的部分并找出他们是如何写的。

在这期间,尤其是遇到难点的时候,我会试图寻找任何文档(只要有的话)。对于这一点,我应当首先知道代码是如何组织的,这样我才能更快的阅读文档。

吐槽

阅读代码库,先掌握它整个架构,看一些底层代码,然后按照需求来阅读。这个方法挺不错。

原文地址:

http://blog.jobbole.com/51973/


怎么学习阅读大型项目的代码

众所周知,要想写出好的程序,除了要经常写之外,还有看看别人是怎么写的,所以读别人的程序是非常重要的;如今是个信息交换十分发达的时代,你可以轻易的就看到顶尖级选手的代码;开源事业蒸蒸日上,确实是所有程序...
  • wbainngg123
  • wbainngg123
  • 2016年04月12日 17:07
  • 2390

如何阅读大型代码库?

本文由 伯乐在线 - 孑良 翻译自 Ayende Rahien。欢迎加入技术翻译小组。转载请参见文章末尾处的要求。 Casey问我:“对于新手,有什么有针对性的诀窍来阅读大型代码库吗?”...
  • boyhailong
  • boyhailong
  • 2013年11月27日 18:24
  • 731

如何阅读大型代码库?

Casey问我:“对于新手,有什么有针对性的诀窍来阅读大型代码库吗?” 碰巧,我认为这是一个非常好的问题。我觉得想要成为一个优秀的开发者,阅读代码库并弄清清楚内部是怎么回事的能力非常重要。在你的职业...
  • shuhuai007
  • shuhuai007
  • 2013年11月27日 15:00
  • 660

如何阅读大型代码库

Casey问我:“对于新手,有什么有针对性的诀窍来阅读大型代码库吗?” 碰巧,我认为这是一个非常好的问题。我觉得想要成为一个优秀的开发者,阅读代码库并弄清清楚内部是怎么回事的能力非常重要。在你的职业...
  • startwithdp
  • startwithdp
  • 2013年12月03日 14:08
  • 557

如何阅读大型代码库

Casey问我:“对于新手,有什么有针对性的诀窍来阅读大型代码库吗?” 碰巧,我认为这是一个非常好的问题。我觉得想要成为一个优秀的开发者,阅读代码库并弄清清楚内部是怎么回事的能力非常重要。在你的职业...
  • bjtbjt
  • bjtbjt
  • 2013年11月29日 16:17
  • 660

如何阅读大型代码库?

本文由 伯乐在线 - 孑良 翻译。未经许可,禁止转载! 英文出处:Ayende Rahien。欢迎加入翻译组。 Casey问我:“对于新手,有什么有针对性的诀窍来阅读大型代码库吗?” 碰...
  • wusecaiyun
  • wusecaiyun
  • 2015年10月31日 10:45
  • 180

如何阅读大型代码库?

本文由 伯乐在线 - 孑良 翻译自 Ayende Rahien。欢迎加入技术翻译小组。转载请参见文章末尾处的要求。 Casey问我:“对于新手,有什么有针对性的诀窍来阅读大型代码库吗...
  • ahnselina
  • ahnselina
  • 2013年11月27日 18:58
  • 595

如何提高阅读源代码的效率

如何提高阅读源代码的效率   记得在开源流行之前,我看过的代码紧限于所参与的项目,能有个几万行就不错哩。后来很多优秀开源项目都相继蹦出来了,阅读的代码量那叫一个大呀!不得不看。我现在掉到an...
  • likika2012
  • likika2012
  • 2015年06月22日 22:59
  • 1038

新手阅读大型代码库

Casey问我:“对于新手,有什么有针对性的诀窍来阅读大型代码库吗?” 碰巧,我认为这是一个非常好的问题。我觉得想要成为一个优秀的开发者,阅读代码库并弄清清楚内部是怎么回事的能力非常重要。在你的...
  • longshenlmj
  • longshenlmj
  • 2013年11月27日 16:05
  • 835

【译】如何阅读大型代码库

原始链接:Reading Large Codebases 我在“伯乐在线”上的译文链接:http://blog.jobbole.com/51973/   译文: Casey问我: ...
  • matrix1437
  • matrix1437
  • 2013年11月24日 13:20
  • 900
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何阅读大型代码库?
举报原因:
原因补充:

(最多只允许输入30个字)