其实我开始读源码才几天时间,但有点心得,就写出来吧,以期抛砖引玉。
阅读源代码的利弊我不谈,我只说该如何读
首先是积累,当到了一定条件,你会迫不及待的想要去读,因为你想拥有程序的控制权
我把一份陌生的源代码比做一个陌生的城市,你将在里面熟悉道路,
你只要从一个大的标志开始进入(程序入口点)然后你面临很多分支,有的分支很明显的(依靠设计模式,oo,模块化,结构化,解耦,经验判断,当然还有文档,注释,别人的源码分析文章)与其它没有什么瓜葛,或者只有几个联系点,其实是一个模块化功能,就像你知道有一条路通向xx村,你先不管它,知道它通哪里就可以了,以后再专程访问xx村。
一个设计优良的程序肯定是一个个通过乡村高速公路连接的村落,而不该是交杂在一起的钢筋水泥,至不济也该是用围墙围起来的一个个小区。
当你知道并熟悉了城市的主干道之后,整个城市其实已经成竹在胸了
你该学好模式,oo,模块化,结构化,解耦,接口,多态。。。。
广义来说就是oo
如果这些你都很牛的时候,有份源码还让你读不懂,直接ctrl+del
写给初学的人,以让他们少走不成器的我走过的弯路。
补充一条找源码分析文章的技巧
在google中输入关键的源码片段
补充一点经验:
当你读过一些模块之后,看到类似的模块就会下意识的去猜测该模块内部的代码结构,如果你读的够多,实践够丰富,模块就了然于胸了。
比如看到一个方法名,根据方法的字面意思就能猜测出该方法的代码结构,看到类名,就可能会猜测出它该要有什么方法。
这时读代码的速度就快了。
代码是一个有机体,当你具有把一份源代码解构成一个有机体的能力的时候,读代码其实并不痛苦。可是我还没有达到我想像的哪个层次。
阅读源代码的利弊我不谈,我只说该如何读
首先是积累,当到了一定条件,你会迫不及待的想要去读,因为你想拥有程序的控制权
我把一份陌生的源代码比做一个陌生的城市,你将在里面熟悉道路,
你只要从一个大的标志开始进入(程序入口点)然后你面临很多分支,有的分支很明显的(依靠设计模式,oo,模块化,结构化,解耦,经验判断,当然还有文档,注释,别人的源码分析文章)与其它没有什么瓜葛,或者只有几个联系点,其实是一个模块化功能,就像你知道有一条路通向xx村,你先不管它,知道它通哪里就可以了,以后再专程访问xx村。
一个设计优良的程序肯定是一个个通过乡村高速公路连接的村落,而不该是交杂在一起的钢筋水泥,至不济也该是用围墙围起来的一个个小区。
当你知道并熟悉了城市的主干道之后,整个城市其实已经成竹在胸了
你该学好模式,oo,模块化,结构化,解耦,接口,多态。。。。
广义来说就是oo
如果这些你都很牛的时候,有份源码还让你读不懂,直接ctrl+del
写给初学的人,以让他们少走不成器的我走过的弯路。
补充一条找源码分析文章的技巧
在google中输入关键的源码片段
补充一点经验:
当你读过一些模块之后,看到类似的模块就会下意识的去猜测该模块内部的代码结构,如果你读的够多,实践够丰富,模块就了然于胸了。
比如看到一个方法名,根据方法的字面意思就能猜测出该方法的代码结构,看到类名,就可能会猜测出它该要有什么方法。
这时读代码的速度就快了。
代码是一个有机体,当你具有把一份源代码解构成一个有机体的能力的时候,读代码其实并不痛苦。可是我还没有达到我想像的哪个层次。