- 阅读源码绝对算得上是一件费时费力的工作,需要读者耗费大量的时间去完成。而作为开发人员,毕竟精力有限,实在没办法拿出太多的时间放在源码的阅读上。
- 源码的复杂性, 任何一款源码经历了多年的发展与提炼,其复杂程度可想而知。当我们阅读源码的时候,大家都知道需要通过工具来跟踪代码的运行,进而去分析程序。但是,当代码过于复杂,环环相扣绕来绕去的时候,跟进了几十个甚至几百个函数后,这时我们已经不知道自己所处的住置了,不得不再重来,但是一次又一次的,最终发现自己根本无法驾取它,不得不放弃。
- 有些源码发展多年, 会遇到各种各样的问题,并对问题进行了解决,而这些问题有的对于我们来说甚至可以用莫名其妙来修饰,有时候根本想不出会在什么情况下会发生。我们选择各种查阅资料,查询无果,最终放弃。
无论基于什么样的原因,放弃阅读源码始终不是一个明智的选择,因为你失去了一个跟大师学习的机会。而且,当你读过几个源码之后你会发现,他们的思想以及实现方式是想通的。这就是开源的好处。随着各种开源软件的发展。各家都会融合别家优秀之处来不断完善自己。这样,到最后的结果就是所有的开源软件从设计上或者实现上都会变得越来越相似,也就是说当你读完某个优秀源码后再去读另一个源代码, 速度会有很大提升。
以我为例,Spring 是我阅读的之一个源码,几乎耗尽了我将近半年的时间,其中各种煎熬可想而知,但是当我读完Spring再去读MyBatis只用了两周时间。当然,暂且不论它们的复杂程度不同,至少我阅读的时候发现有很多相通的东西。当你之一次阅读的时候,你的重点一定是在源码的理解上,但是,当你读完之一个源码再去读下一个的时候,你自然而然地会带着批判或者说挑剔的眼光去阅读:
- 为什么这个功能在我之前看的源码中是那样实现的,而在这里会是这样实现的?
- 这其中的道理在哪里,哪种实现方式更优秀呢?
而通过这样的对比及探索,你会发现,自己的进步快得难以想象。
我们已经有些纠结了,既然阅读源码有那么多的好处,但是很多同学却因为时间或能力的问题而不得不放弃,岂不是太可惜?
因此今天小编在这里给大家发送一份粉丝福利:
关注我的头条号【Java技术宅】,然后私信发送“源码“,即可免费领取一本《Spring源码深度解析.pdf》,希望能对正在Spring道路上摸索的同仁们提供一些帮助。
来源:博客,欢迎分享本文!
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。