“我讨厌阅读别人的代码”是所有经验层级上的软件开发人员之间普遍存在的问题。然而,这又是一个必要的技能,特别是对于开发人员进入到现有的代码库中的时候,如果你以正确的角度和正确的工具来处理它,这可能是一个愉快和有启发性的体验。
我们讨厌阅读别人的代码的原因是因为代码不是我们自己写的。这不是因为我们认为自己是地球上最好的编码人员,没有人可以像我们这样编写好的代码。而是因为在创建代码时有一个积极的思维过程,而被动的阅读者并没有获得这种亲身体验的益处。
你在屏幕上看到的代码可能涉及多个人。它可能涉及辩论和协作。它可能需要几个星期才能完成符合只在原作家头脑中的一些未文档化的限制的版本——但是你对此却不可得知。
作为读者,你看到的所有产品都是成品,除非你做一点挖掘,否则你唯一得到的就是屏幕上的其他单词。
1. 学会深挖
当你第一次深入成熟的代码库时,你可能感觉自己不像开发人员。你可能更像是考古学家、私人调查员或圣经学者。这很好,因为你有一大堆事情需要处理。
如果你有幸能够从一开始就接触使用版本控制的代码库,那么就该庆祝一下。你可以访问丰富的元数据,这将使你理解的不仅仅是代码,还包括上下文,都会容易很多。我会假设你使用 Git ,但是如果你使用 SVN ,那么这个想法也是同样适用的。
git blame
你可以在文件上使用 git blame 来获取每一行的提交名、上次修改日期和提交哈希值。熟悉这些提交者。如果你足