在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
大家知道为什么程序员要阅读源代码吗?一方面是由于在开发工作中,肯定会碰到接手别人项目的情况,不懂得阅读源码连工作都做不好;另一方面,阅读源代码是学习和提升技能的重要方法。既然阅读源代码如此重要,那么我们应该如何阅读源代码呢?今天跟大家聊聊阅读源码的四大指导原则。
指导原则一:跑不起来的不读
跑不起来的源码不要读,因为看也看不懂,或者是很难看懂,事倍功半,读起来还费劲。什么时候这个源码必须得跑起来,跑起来有什么好处就是,你可以用debug-条线跟进去。 举个例子,比如ReentrantLock的lock(方法,没有跑起来的时候,静态的来读源码你会怎么读?按ctr|鼠标单击lock(方法,进入这个方法,会看到这个方法调用了别的方法,你又会按ctrl鼠标单击进入它调用的这个方法,一层层往下,你会发现没法读了,所以如果这个东西能跑起来就不一样了,你会发现与之前鼠标单击跟进的结果不一样了,原因是因为多态的实现,如果一个方法有很多子类的实现,但是你不知道跟着这条线,它会去实现那个方法,所以你就得全部看一遍。
指导原则二:解决问题就好
在实际中解决问题就好,读源码一方面可以解决问题,另一方面可以应对面试。什么意思呢?如果你接手了一个别人改过6手的代码,现在你的老板说这个代码有些问题,你往里边加一些功能或者修改一些bug。你解决了问题就好,不需要从头到尾去读去改这个代码。因此,阅读源代码的一大指导原则就是目的性要强,解决问题就行了。
指导原则三:一条线索到底
读源码的时候要一条线索到底, 不要只读表面。我们知道一个程序跑起来以后,可能这个程序非常大,一个main方法有很多的put、get. size各种各样其他的方法。每一个方法你调进去,这个方法很有可能又去调别的方法。所以你不要每个方法先看遍表面,然后再去里边找。而是要一条线索到底,就读一个方法,由浅到深看一遍。就样子阅读源代码的效率会更高!
指导原则四:无关细节略过
阅读代码最忌讳的是,不抓结构抓细节,只见树木不见森林。正确的方式是先把整体脉络理清楚,然后按照模块去阅读代码,把类和类、函数和函数之间的调用关系记录下来。有那些边界性的东西,在你读第一边没必要的时候,你可以先把它略过。
总的来讲,阅读源代码确实不是一件简单的事,甚至还有点困难,需要我们全身心的投入。而大部分时候,许多人没办法投入去阅读源代码,不是不够努力,而是方法就完全错了。希望大家都可以按照以上的四大指导原则,尝试着去读一下代码,相信一定可以获益匪浅!
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
IT工程师分“五个等级”,你知道自己在哪个等级吗?
著名前苏联物理学家朗道曾经给出过一个五级物理学家的划分,吴军老师在此基础上提出了“五级工程师”的划分。IT工程师分“五个等级”,你知道自己在哪个等级吗?这个话题的意义不在于引发大家的焦虑感,而是帮助大家正面直视是自我定位,并给与自己一个未来奋斗的目标。
13722
2019-07-05 18:36:13
哪种编程语言更容易学习?其职业发展前景如何?
众所周知,现在IT行业已然成为高薪的头部行业。由于互联网技术人才以实战型为主,任何专业人才均可以通过学习进入IT行业,促使互联网行业得以高速的发展。那哪种编程语言更容易学习呢?其职业发展前景如何?
5509
2019-08-13 18:18:02
程序员这个岗位可以干多少年?
程序员作为当前高薪且极具发展前途的热门岗位,吸引了许多人的青睐。然而也有一些人担心程序员只是一个吃青春饭的岗位,到了30岁以后就会失去竞争力。实际上,这完全是大众对于这个行业存在普遍误解。虽然,一个程序员的编程能力和编程年纪不一定成正比,但是在绝大多数的情况下,参与更多项目开发经验的资深程序员一定比年轻的程序员更吃香。下面我们来详细看看程序员这个岗位可以干多少年。
4828
2020-02-28 13:43:05
程序员如何做到越老越吃香?
在许多人的眼中,资历比较老的程序员不会像那些刚从大学里面毕业的学生那样,在工作中工作有那么多时间和精力,因此程序员只是一份青春饭。其实,这是对技术岗位最大的误解。那么,程序员如何做到越老越吃香呢?其实,只要大家在工作中一直保持着学习的态度,有着良好的决策力,对知识有着更深入的理解,并且掌握更全面的技术能力,以及具备一定的沟通交流技巧。无论走到哪里都应该是企业公司争抢的技术人才。
4850
2020-03-13 17:21:58
学习编程入门先学什么?
学习编程入门,先学什么?其实对于编程来说,任何一个你能持之以恒学习的编程语言都行,今天呢,小编想分享一个编程入门书单,希望大家通过这些书来找到自己的学习方法。
5105
2020-04-01 17:49:22