程序猿读好代码的八个招数

我们讨厌阅读别人的代码是因为那不是我们自己写的。这不是因为我们自认是地球上最好的编码人员,没有人可以像我们这样编写好的代码。而是因为在创建代码时有一个积极的思维过程,而被动的阅读者并没有获得这种亲身体验的益处。

你在屏幕上看到的代码可能涉及多个人,它可能涉及辩论和协作,它可能需要几个星期才能完成符合只在原作家头脑中的一些未文档化的限制的版本——但是你对此却不可得知。

作为读者,你看到的所有产品都是成品,除非你做一点挖掘,否则你唯一得到的就是屏幕上的其他单词。

1.学会深挖

当你第一次深入成熟的代码库时,你可能感觉自己不像开发人员。你可能更像是考古学家、私人调查员或圣经学者。这很好,因为你有一大堆事情需要处理。

如果你有幸能够从一开始就接触使用版本控制的代码库,那么就该庆祝一下。你可以访问丰富的元数据,这将使你理解的不仅仅是代码,还包括上下文,都会容易很多。我会假设你使用Git,但是如果你使用SVN,那么这个想法也是同样适用的。

你可以在文件上使用gitblame来获取每一行的提交名、上次修改日期和提交哈希值。熟悉这些提交者。如果你足够幸运的话,可能只有其中的一些,他们可能还在和你在一起工作,所以你可以把他们当做资源。如果你很不幸,可能有几十个你以前从未听说过的提交者。

无论如何,尝试了解主要贡献者是谁。如果你遇到一个奇怪的功能,并且你不能搞明白,请使用gitblame找出提交者,找到他或她去询问。

使用gitlog查看整个代码仓库的提交历史记录。此命令将打印提交消息,因此,如果要执行类似搜索提交消息中引用someFunction的提交,请勿忘记使用grep命令:gitlog

grepsomeFunction-C3(-C3将显示匹配到的上下文三行内容)。

gitlog还可以显示具有-p标志的单个文件的历史记录:gitlog-pindex.js。注意最近一直在修改代码的人,这样你就能知道在出现问题时找谁咨询了。

2.GoBackinTime

你可以查看任何所需的提交,并将其运行,就像它是项目中最近提交的一样。你可能想在遇到一些难以追踪的错误出现之前查看最后一次已知的正确的提交,或者你可能会觉得无聊和有心情探索下在你进该项目之前几年里该项目的历史更新情况。

如果你的项目托管在GitHub或类似的网站上,你可以通过阅读问题、pull请求和代码复审来获得大量的信息。多注意曾经产生大量讨论的问题。这些可能是你最终会遇到的痛点,你会提前知道如何处理它们。

3.阅读规范

规范是新的注释。阅读单元规范,以确定什么功能和模块是被支持的以及哪些边界情况要被处理。阅读集成规范,以了解用户如何与应用程序进行交互,以及应用程序支持哪些工作流程。

4.将评论视为提示

如果您遇到一个令人困惑的功能,又看到了使你更加困惑的相关的评论,请考虑该评论过时且未被维护的可能性。程序员的眼睛有一种跳过绿色线条文本的方法,这个没有其他人注意到的评论可能是在说明这几个月(或几年)内不存在的迭代功能。

5.查看Main文档

这可能看起来是很明显,但请确保您知道代码开始执行的位置以及如何设置。查看这里包含的文件,正在实例化的类和正在设置的配置选项。

你可能会在代码库的其余部分看到它们。这里的一些模块可能非常通用,并与其他代码分离。它们代表更小,更易消化的功能,您应该在尝试解决大型应用之前熟悉这些功能。

在这个文件上运行一个gitblame命令,看看它最近有哪些部分被改变了。近期更改的一大堆代码可能会告诉您最近几周开发团队面临的一些挑战,也许他们已经推出了一个新的库,也许他们一直在努力地配置一个运行不太好的库,或者也许只需要定期更新的样板代码。

尝试在某些其他源代码中查找对这些模块的引用,以感受一下这些模块是如何被使用的。这可以帮助您了解如何适应整个应用程序。

6.







































白癫疯能吃枣子吗
白癜风丸零售价格是多少元



转载请注明:http://www.shhjfk.com/xxzl/xxzl/7685.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了