在线客服
扫描二维码
下载博学谷APP
扫描二维码
关注博学谷微信公众号
大家知道为什么程序员要阅读源代码吗?一方面是由于在开发工作中,肯定会碰到接手别人项目的情况,不懂得阅读源码连工作都做不好;另一方面,阅读源代码是学习和提升技能的重要方法。既然阅读源代码如此重要,那么我们应该如何阅读源代码呢?今天跟大家聊聊阅读源码的四大指导原则。

指导原则一:跑不起来的不读
跑不起来的源码不要读,因为看也看不懂,或者是很难看懂,事倍功半,读起来还费劲。什么时候这个源码必须得跑起来,跑起来有什么好处就是,你可以用debug-条线跟进去。 举个例子,比如ReentrantLock的lock(方法,没有跑起来的时候,静态的来读源码你会怎么读?按ctr|鼠标单击lock(方法,进入这个方法,会看到这个方法调用了别的方法,你又会按ctrl鼠标单击进入它调用的这个方法,一层层往下,你会发现没法读了,所以如果这个东西能跑起来就不一样了,你会发现与之前鼠标单击跟进的结果不一样了,原因是因为多态的实现,如果一个方法有很多子类的实现,但是你不知道跟着这条线,它会去实现那个方法,所以你就得全部看一遍。
指导原则二:解决问题就好
在实际中解决问题就好,读源码一方面可以解决问题,另一方面可以应对面试。什么意思呢?如果你接手了一个别人改过6手的代码,现在你的老板说这个代码有些问题,你往里边加一些功能或者修改一些bug。你解决了问题就好,不需要从头到尾去读去改这个代码。因此,阅读源代码的一大指导原则就是目的性要强,解决问题就行了。
指导原则三:一条线索到底
读源码的时候要一条线索到底, 不要只读表面。我们知道一个程序跑起来以后,可能这个程序非常大,一个main方法有很多的put、get. size各种各样其他的方法。每一个方法你调进去,这个方法很有可能又去调别的方法。所以你不要每个方法先看遍表面,然后再去里边找。而是要一条线索到底,就读一个方法,由浅到深看一遍。就样子阅读源代码的效率会更高!
指导原则四:无关细节略过
阅读代码最忌讳的是,不抓结构抓细节,只见树木不见森林。正确的方式是先把整体脉络理清楚,然后按照模块去阅读代码,把类和类、函数和函数之间的调用关系记录下来。有那些边界性的东西,在你读第一边没必要的时候,你可以先把它略过。
总的来讲,阅读源代码确实不是一件简单的事,甚至还有点困难,需要我们全身心的投入。而大部分时候,许多人没办法投入去阅读源代码,不是不够努力,而是方法就完全错了。希望大家都可以按照以上的四大指导原则,尝试着去读一下代码,相信一定可以获益匪浅!
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
软件架构师需要具备五大能力分析
软件架构师作为技术团队的绝对骨干,可以说是整个项目的总指挥和领导者,因此无论是专业技术,还是沟通交际的能力都是顶尖水平。虽然对于大多数的人来讲,软件架构师好像只是一个指点江山的虚职,但实际上软件架构师不仅要有省局高位的远瞻性,还要有落地实际的解决执行力。下面我们一起分析一下软件架构师需要具备五大能力,即编码能力、理解能力、架构能力、评估能力和领导能力。
9972
2020-02-17 17:07:46
程序员应该选择去大公司还是小公司?
在程序员的职场生涯中,总会面临着许多的选择。今天我们要讨论的问题是,程序员应该选择去大公司还是小公司?其实这个问题没有一个固定的答案,适合自己的才是最重要的。尤其对许多人来讲,进大公司的门槛高,我们常常不能主动的选择大公司。当然 ,这也不是说在大公司的发展一定就好,下面我们一起来分析一下进大公司和小公司的利弊。
7821
2020-03-03 21:45:34
IT程序员赚钱吗?高薪程序员很普遍吗?
IT程序员赚钱吗?高薪程序员比较普遍,薪资和个人工作能力成正比,高薪酬背后离不IT开程序员们高劳动力的付出,不要盲目的去选择入行IT就业,学不好IT技术是无法获得高薪回报的,同事不同技术人才的薪资与经验的相关性不尽相同。
8382
2020-03-17 17:30:20
软件工程师证书怎么考?报考条件限制有哪些?
参加各级水平考试不限学历和资历,软件工程师证是社会培训机构通过培训考核发给的有关证书。与国家计算机软件水平资格考试不一样。软件工程师考试考察的知识面比较广,一些问题也比较有深度。对于掌握和巩固软件工程技术相关的知识有一个梳理和总结提高的作用。这个证书本身没多少用但在备考过程中能学到不少东西。
38515
2020-04-01 16:04:49
Shell是什么?快速理解Shell的概念
Shell是什么?可能对于一些完全没有计算机基础的朋友来讲,想要理解Shell的概念可能会有一些困难。本文将从Shell的出现、定义以及分类来带大家快速理解Shell的概念。
8369
2020-07-29 14:41:17
