在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
大家知道为什么程序员要阅读源代码吗?一方面是由于在开发工作中,肯定会碰到接手别人项目的情况,不懂得阅读源码连工作都做不好;另一方面,阅读源代码是学习和提升技能的重要方法。既然阅读源代码如此重要,那么我们应该如何阅读源代码呢?今天跟大家聊聊阅读源码的四大指导原则。
指导原则一:跑不起来的不读
跑不起来的源码不要读,因为看也看不懂,或者是很难看懂,事倍功半,读起来还费劲。什么时候这个源码必须得跑起来,跑起来有什么好处就是,你可以用debug-条线跟进去。 举个例子,比如ReentrantLock的lock(方法,没有跑起来的时候,静态的来读源码你会怎么读?按ctr|鼠标单击lock(方法,进入这个方法,会看到这个方法调用了别的方法,你又会按ctrl鼠标单击进入它调用的这个方法,一层层往下,你会发现没法读了,所以如果这个东西能跑起来就不一样了,你会发现与之前鼠标单击跟进的结果不一样了,原因是因为多态的实现,如果一个方法有很多子类的实现,但是你不知道跟着这条线,它会去实现那个方法,所以你就得全部看一遍。
指导原则二:解决问题就好
在实际中解决问题就好,读源码一方面可以解决问题,另一方面可以应对面试。什么意思呢?如果你接手了一个别人改过6手的代码,现在你的老板说这个代码有些问题,你往里边加一些功能或者修改一些bug。你解决了问题就好,不需要从头到尾去读去改这个代码。因此,阅读源代码的一大指导原则就是目的性要强,解决问题就行了。
指导原则三:一条线索到底
读源码的时候要一条线索到底, 不要只读表面。我们知道一个程序跑起来以后,可能这个程序非常大,一个main方法有很多的put、get. size各种各样其他的方法。每一个方法你调进去,这个方法很有可能又去调别的方法。所以你不要每个方法先看遍表面,然后再去里边找。而是要一条线索到底,就读一个方法,由浅到深看一遍。就样子阅读源代码的效率会更高!
指导原则四:无关细节略过
阅读代码最忌讳的是,不抓结构抓细节,只见树木不见森林。正确的方式是先把整体脉络理清楚,然后按照模块去阅读代码,把类和类、函数和函数之间的调用关系记录下来。有那些边界性的东西,在你读第一边没必要的时候,你可以先把它略过。
总的来讲,阅读源代码确实不是一件简单的事,甚至还有点困难,需要我们全身心的投入。而大部分时候,许多人没办法投入去阅读源代码,不是不够努力,而是方法就完全错了。希望大家都可以按照以上的四大指导原则,尝试着去读一下代码,相信一定可以获益匪浅!
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
如何学习计算机?新手小白入门须知
万事开头难,对于新手小白来讲计算机入门阶段是最迷茫无措的。其实学习任何新事物都是一样的,离不开为什么学?怎样学?这两大难题。新手在学习时首先应该有一个详细的学习计划,而不是头脑一热,这样才不容易轻易放弃。本文就来和大家谈谈“如何学习计算机”。
13837
2019-08-19 16:18:21
Java和C语言有什么区别?学哪个语言好就业?
Java和C语言都是现阶段IT行业里被广泛使用的编程语言,说起它们之间的区别还是相当大的。许多编程语言的初学者在学习初期,都会遇到这样的问题,Java和C语言学哪个语言好就业?其实只要你学好其中随意一门,就业就都不会有太大的问题。如果非要比较Java和C语言的就业前景,从目前的行业形势分析,选择学Java的话你的职业发展方向更多,高薪的就业机会也越大。
7831
2019-11-29 14:43:23
Java和Python应该学哪个好?
随着IT编程成为大热的学习科目,许多人对于Java和Python应该学哪个好,充满了疑问。因为Java和Python都是目前风头强劲的编程语言,下面我将带大家好好认识一下这两种编程语言,并带大家看看它们的区别,以及应用场景和薪资待遇。相信大家看完之后,对于上面这个问题会有自己的答案。
5638
2020-04-24 18:13:07
推荐一款开发者必备的利器
今天小编将给大家推荐一款非常好用的工具——XShell。毫不夸张的说,XShell是一款Windows下非常优秀的远程连接Linux主机的工具,非常好用,是每一个开发者必备的利器。下面我们来看看Xshell的一些使用技巧~
4132
2020-07-29 18:03:56
女生到底适不适合学编程做程序媛?
编程学起来我不知道哭了多少次!逻辑差听不懂不理解,仅入门就差点“要了我的命”,哭过几次以后我意识到哭解决不了问题,只能硬着头皮反复练习以此来缩短差距!虽然后来遇到问题还会着急到哭,但至少我认清了一个现实,那就是出现问题必须解决否则无法深入学习。
3406
2021-06-10 16:15:35