"没有经验的技术差底子薄的初级程序员,如何阅读项目源码? "
"有人阅读过 mybatis 的源码吗 ?就看一个初始化过程就看的已经头晕眼花了,小伙伴们支支招吧!"
"源码应该怎么阅读,我曾经尝试阅读一些源码,例如alibaba的druid中sqlparser部分,spring-mvc,但是发现很吃力,都说debug是最好的阅读方式,我在debug时经常有跟丢的现象……就是走着走着感觉好像进入了一些我当前不太关注细枝末节。 "
。。。。。。
估计很多人都有这样的疑惑。
我非常能理解小伙伴们的痛苦,因为我也是这么痛苦着走过来的。
阅读优秀源码的好处想必大家都知道,学习别人优秀的设计,合理的抽象,简洁的代码...... 总之是好处多多。
但是真的把庞大的代码放到你的面前,就如同一个巨大的迷宫,要在其中东转西转寻出一条路来,把迷宫的整个结构搞清楚,理解核心思想,真心不容易。
在阅读由面向对象的语言如Java写的代码时,会发现接口和具体的实现经常对应不起来,不太清楚一个功能到底是怎么在哪个实现类中才能找到。 不像C语言,就是函数调用函数,相对还好点。
如果是动态语言如Ruby,Python, 一个变量的类型甚至都不容易知道,阅读的难度大大增加。
还有一个重要的原因,现在我们看到的源码基本上都经过若干年发展、经过很多人不断地完善的,枝枝蔓蔓非常多,魔鬼都在细节中。 阅读的时候很容易陷进去, 看了几十层函数调用以后,就彻底懵了,就放弃了: 甭管你把源码吹得天花乱坠, 老子再也不看了。
我不是什么资深程序猿,但还是想稍微分享一下经验吧。
一个结构合理的项目
差不多就是酱紫啦
一个乱七八糟的项目
GCC
如果你在看GCC源码的话,当我没说。
我瞄过一眼GCC源码,甚至妄图把它们clone下来。