浅析源码分析的动机

简介: 浅析源码分析的动机

动机  

试想当您遇到一个it技术问题的时候,您一般情况下是怎么做的?

1. 对问题做一下简单的分析,从自己的大脑库中搜寻以前是否遇到过同样的问题,如果搜寻到,解决问题,直接跳到步骤4,否则进行第二步;

2. 在baidu中百度下问题关键字,看有没有谁遇到和我一样或者类似的问题,总是期望别人遇到和自己一样的问题,然后将解决的思路贴出来,这样自己就不用花时间一步步分析问题了,如果百度到同样的问题,自然也解决问题,直接跳到步骤4,否则进行第三步;

3. 一步步的调试跟踪分析问题,直到问题解决;

4. 结束,解决问题;

对于老手来说,一般第一步就能解决问题,不过对于大部分的新手来说,则要经历第二步或者第三步,且这部分新手中大部分人都寄希望于第二步能解决问题,于是他们夜以继日的搜寻着他们认为值得信赖的中国互联网,但搜寻了几天之后,发现问题依旧没有解决 。 这是为什么?原因就在于这是中国的互联网,具有中国互联网文化的特性。我们羡慕老手,因为他们凭着自己的经验,很快的就能解决问题;同时我们也同情新手,因为他们诞生在具有中国特色的互联网环境中。


那么什么是中国互联网文化呢?中国特色互联网是什么?中国特色互联网最大的特性就是一搜一大票,票票都一样。我相信这是我对于中国互联网特性最好的描述,这绝对不是愤青,也不是胡言乱语,而是长期以来在解决技术问题中的心得体会,相信会有一部分人的想法和我是一致的。刨根问底,原因在于,中国太不注重知识产权保护,没有知识产权的意识。随意的拷贝复制别人的博文、代码,而不加一点点引用说明,本着“你的就是我的,我的还是我的”这样的原则行事。另外搜索引擎对于这些相似度极高的文章也不做任何的处理,而是一窝蜂的全显示出来,结果我们程序员一页又一页的仔细查看,抱着网上肯定有人已经解决了这个问题的心态,苦苦翻页,结果到了最后一页才发现,之前所有看到的结果都是同一个,至此你心灰意冷,询问自己为什么会这样,花费了如此众多的时间来查询该问题的解决方案,没想到最后的结果竟然会是一无是处 。关于这个问题,以前在百度三面manager面试的时候,也向manager提出过这个问题,manager当时没有给出答案,而自己最后无赖还是理所应当的悲剧了。


上述讨论了这么多,和自己为什么要写源码分析系列的文章有什么关系呢?听我细细道来。


从两篇源码分析的文章,基本上也可以看出,这两篇的源码分析文章和传统的源码分析有什么不同的地方了。主要的不同点在于以下方面:


1. 源码分析都是问题驱动式的,带着问题去进行源码分析,传统意义上的源码分析都是从整体架构加以分析的;


2. 每次源码分析的目标都非常明确,目标完成则源码分析任务结束;


3. 每次源码分析需要解决的问题都是开发中常见的问题,所以针对这些常见的问题作一些源码分析,从而使得本次的源码分析是一件非常有意义的事情;


4. 每次的源码分析,你都会有一种意犹未尽的感觉,在看完源码分析文章后,你完全可以依照自己的兴趣,按照文章中给出的思路,自己去进行下一步的源码分析工作,保持源码分析的一个持续性;


5. 在解决问题的思路上,与传统的论坛帖子也有所区别,本系列通过对源码的分析,试图阐述框架背后所做的工作,让您透彻的了解问题的本质,而不是肤浅的直接给出问题的答案,这种从源码的角度去分析问题的好处就在于本解决方案依赖的东西非常少,直接依赖于源码,这样就不会因为依赖别人的分析出错,而导致自己的分析出错,这和osc不使用框架开发,而全部使用自己写的类是一个道理;  


6. 这种从源码角度分析的文章,即使大量的充斥在互联网中,也不会引起负面的影响,因为它可以让你透彻的了解问题的本质,掌握分析问题解决问题的方法, 从而为上述的第三步解决问题提供强有力的保证;

总结  

本文主要阐述了自己最近写的两篇源码分析的文章的动机,以及今后一段时间将继续进行该类型源码分析文章的创作。

目录
相关文章
|
7月前
|
XML Java 数据库连接
谈谈Java反射:从入门到实践,再到原理
谈谈Java反射:从入门到实践,再到原理
125 0
|
2月前
|
开发框架 Java 程序员
揭开Java反射的神秘面纱:从原理到实战应用!
本文介绍了Java反射的基本概念、原理及应用场景。反射允许程序在运行时动态获取类的信息并操作其属性和方法,广泛应用于开发框架、动态代理和自定义注解等领域。通过反射,可以实现更灵活的代码设计,但也需注意其性能开销。
47 1
|
4月前
八问八答搞懂Transformer内部运作原理
【8月更文挑战第28天】这篇名为“Transformer Layers as Painters”的论文通过一系列实验,深入探讨了Transformer模型内部不同层级的信息处理机制。研究发现,中间层级在表示空间上具有一致性,但功能各异,且模型对层级的去除或重排表现出较强的鲁棒性。此外,论文还分析了层级顺序、并行执行及循环等因素对模型性能的影响,揭示了不同任务下层级顺序的重要性差异,并指出随机化层级顺序和循环并行化对性能损害最小。
48 5
|
6月前
|
存储 安全 Java
彻底攻克ThreadLocal:搞懂原理、实战应用,深挖源码!扩展InheritableThreadLocal、FastThreadLocal!
彻底攻克ThreadLocal:搞懂原理、实战应用,深挖源码!扩展InheritableThreadLocal、FastThreadLocal!
|
7月前
|
机器学习/深度学习 存储 自然语言处理
ChatGPT原理分析
ChatGPT原理分析
50 1
|
7月前
|
编译器 C++
【C++】一文全解四种经典 [ 特殊类 ]的设计
【C++】一文全解四种经典 [ 特殊类 ]的设计
|
7月前
|
程序员 Python
类的设计奥秘:从代码到架构的科普全解
类的设计奥秘:从代码到架构的科普全解
96 2
|
设计模式 网络协议 Java
经典永不过时!重温设计模式
在软工程中,设计模式(design pattern)是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。这个术语是由埃里希·伽玛(Erich Gamma)等人在1990年代从建筑设计领域引入到计算机科学的,设计模式是针对软件设计中常见问题的工具箱,其中的工具就是各种经过实践验证的解决方案。即使你从未遇到过这些问题,了解模式仍然非常件有用,因为它能指导你如何使用面向对象的设计原则来解决各种问题。
194 1
经典永不过时!重温设计模式
|
运维 Cloud Native Devops
结合个人经历谈谈如何理解CALMS模型
结合个人经历谈谈如何理解CALMS模型
259 0
结合个人经历谈谈如何理解CALMS模型
|
设计模式 存储 算法
理论:第七章:用生活的案例解释23种设计模式
理论:第七章:用生活的案例解释23种设计模式
132 0
理论:第七章:用生活的案例解释23种设计模式