如何看源码?
《JAVA特种兵》笔记之如何看源码
首先是心态:
看源码需要经历一个过程,往往是一个迭代的过程,
在每一次阅读完相应的源码后,体会一下源码的一些思路可能会用在哪里,尽自己的努力去理解。
读懂源码需要理解其设计思想,放平心态,落实于当下,不要怕痛苦,也不要想着一次性把所有的
代码都看懂,但是需要"迈出第一步",否则永远也走不出这个先与后的逻辑圈子,成长快的人不会将
太多的精力放在这个问题上纠结,默默努力就好。
带着"欲望"和需求去阅读源码。
看源码难点在于跟踪源码是一种面向过程的思路,建议方法:看到自己感兴趣的类,将它记录下来,
花2分钟左右时间简单理清楚大致继承关系,理清楚大致的属性和方法有哪些,这样总体有了一个总体的
脉络就好,细节上的方法如何实现可以空闲再梳理。
看源码不要想着一口气将一段没有见过的源码完全看懂,需要采取以点带面逐步深入的方式,要学会
"逆向思维","换位思考"的方式。
看源码的过程中会涉及很多非常复杂的逻辑处理,导致看源码很痛苦,集中看要了解的代码,虽然
中间有许多其他的逻辑,但是要去看的源码不是这些,不要过多关注其他的源码,至少不需要关注那些
一时半会看不懂的源码,这样会简单很多。
看源码其实并不是要学习它的体系,而是要知道一些内在和思想,用以更好地工作,当很多知识点铺开后,
就会游刃有余。
看源码要注意:不要跟踪所有的路径,只需要关心代码中目前调用的路径即可,某些中间路径可以忽略。
要找到当前代码调用路径:Thread.currentThread().getStackTrace();或者new Exception().printStackTrace()
了解输出代码调用路径后,接下来对关注内容踩点,代码路径包含具体的类和具体的方法,以及代码的行号,
对应的方法内容,读懂大概意思后,就寻找想要的内容即可。
如果仅仅为了源码而去读源码就会失去阅读源码的价值。为了更高解决工作中问题,让自己所学能够有机会落地。
知识是相关的。
我不愿意为技术而学习技术,但是并不会因为不用就不去学技术,更加不会认为学习一些与工作不相关的技术
是错误的,在学习的道路上只要懂得不断去实践,思考,查阅权威资料,与人进行交流并发表看法,就可以走得更远。
心态+方法论。
做了事情,处理了问题要思考和总结,不要就任务结束就结束了。