动机
试想当您遇到一个it技术问题的时候,您一般情况下是怎么做的?
1. 对问题做一下简单的分析,从自己的大脑库中搜寻以前是否遇到过同样的问题,如果搜寻到,解决问题,直接跳到步骤4,否则进行第二步;
2. 在baidu中百度下问题关键字,看有没有谁遇到和我一样或者类似的问题,总是期望别人遇到和自己一样的问题,然后将解决的思路贴出来,这样自己就不用花时间一步步分析问题了,如果百度到同样的问题,自然也解决问题,直接跳到步骤4,否则进行第三步;
3. 一步步的调试跟踪分析问题,直到问题解决;
4. 结束,解决问题;
对于老手来说,一般第一步就能解决问题,不过对于大部分的新手来说,则要经历第二步或者第三步,且这部分新手中大部分人都寄希望于第二步能解决问题,于是他们夜以继日的搜寻着他们认为值得信赖的中国互联网,但搜寻了几天之后,发现问题依旧没有解决 。 这是为什么?原因就在于这是中国的互联网,具有中国互联网文化的特性。我们羡慕老手,因为他们凭着自己的经验,很快的就能解决问题;同时我们也同情新手,因为他们诞生在具有中国特色的互联网环境中。
那么什么是中国互联网文化呢?中国特色互联网是什么?中国特色互联网最大的特性就是一搜一大票,票票都一样。我相信这是我对于中国互联网特性最好的描述,这绝对不是愤青,也不是胡言乱语,而是长期以来在解决技术问题中的心得体会,相信会有一部分人的想法和我是一致的。刨根问底,原因在于,中国太不注重知识产权保护,没有知识产权的意识。随意的拷贝复制别人的博文、代码,而不加一点点引用说明,本着“你的就是我的,我的还是我的”这样的原则行事。另外搜索引擎对于这些相似度极高的文章也不做任何的处理,而是一窝蜂的全显示出来,结果我们程序员一页又一页的仔细查看,抱着网上肯定有人已经解决了这个问题的心态,苦苦翻页,结果到了最后一页才发现,之前所有看到的结果都是同一个,至此你心灰意冷,询问自己为什么会这样,花费了如此众多的时间来查询该问题的解决方案,没想到最后的结果竟然会是一无是处 。关于这个问题,以前在百度三面manager面试的时候,也向manager提出过这个问题,manager当时没有给出答案,而自己最后无赖还是理所应当的悲剧了。
上述讨论了这么多,和自己为什么要写源码分析系列的文章有什么关系呢?听我细细道来。
从两篇源码分析的文章,基本上也可以看出,这两篇的源码分析文章和传统的源码分析有什么不同的地方了。主要的不同点在于以下方面:
1. 源码分析都是问题驱动式的,带着问题去进行源码分析,传统意义上的源码分析都是从整体架构加以分析的;
2. 每次源码分析的目标都非常明确,目标完成则源码分析任务结束;
3. 每次源码分析需要解决的问题都是开发中常见的问题,所以针对这些常见的问题作一些源码分析,从而使得本次的源码分析是一件非常有意义的事情;
4. 每次的源码分析,你都会有一种意犹未尽的感觉,在看完源码分析文章后,你完全可以依照自己的兴趣,按照文章中给出的思路,自己去进行下一步的源码分析工作,保持源码分析的一个持续性;
5. 在解决问题的思路上,与传统的论坛帖子也有所区别,本系列通过对源码的分析,试图阐述框架背后所做的工作,让您透彻的了解问题的本质,而不是肤浅的直接给出问题的答案,这种从源码的角度去分析问题的好处就在于本解决方案依赖的东西非常少,直接依赖于源码,这样就不会因为依赖别人的分析出错,而导致自己的分析出错,这和osc不使用框架开发,而全部使用自己写的类是一个道理;
6. 这种从源码角度分析的文章,即使大量的充斥在互联网中,也不会引起负面的影响,因为它可以让你透彻的了解问题的本质,掌握分析问题解决问题的方法, 从而为上述的第三步解决问题提供强有力的保证;
总结
本文主要阐述了自己最近写的两篇源码分析的文章的动机,以及今后一段时间将继续进行该类型源码分析文章的创作。