浅谈源码--“造轮子”与“拆轮子”之间的关系

来源:互联网 发布:windows bt删不干净 编辑:程序博客网 时间:2024/05/20 09:49

写在前面

本文只是个人在工作生活中的一些小感悟,诸位大神看过,如有同感,且会心一笑即可,很高兴您能有相同的感受。如有其它意见,您尽可将其附于评论。很高想能与您一起探讨。

此致

一些体会

个人感觉,在实际的生产过程中,我们总是会遇到一些有时候需要用用到一个“轮子”的时候,有时候,我们只需要把别人造好的轮子拿过来用就是了。但有时候,有需要我们根据自己的需求,自己再造一个轮子。在这种情况下,我们需要的不只是知其然,还要知其所以然。知道他的长处,也要知道他的缺点和弊端。因为轮子的存在,有可能是别人为了方便当时自己的生产需求而根据实际情况生产的,尽管其业务可能会跟我们的需求可能会有很大的重叠,但其根源上还是和我们真正的目标之前或多或少的存在一些差异的。因此,我们在使用这个东西的时候,要知道他的原理和应用场景。

现实场景:

我们自己组装一个自行车的时候,我们有时候只需要一些已经现成的零件,而不是原材料,只有在个性化的时候,才会考虑到增加一些东西。但是,对于我们的自行车,我们则需要能尽可能的了解,因为在以后的使用中,自行车我们无法保证他在什么时候会出现一些问题,而我们也不可能及时的刚好出现在自行车的维修点旁边。因此我们要有一些解决基础问题的能力,以备不时之需。当自行车出现问题的时候,我们能够以最小的成本保证自行车的继续使用,而不是直接更换整体的零部件。那样做,面临的问题就是成本过大或者是我们无法解决当时遇到的问题。

场景映射:

在程序的世界中,我们随时可能用到别人开源的、制造好的工具–“轮子”,我们在使用他们搭建一个完整的系统的时候,我们是要将其控制在自己可控的范围内,即:即时他出现了这样活着那样的问题,我们也能保证我们的系统在经过我们的维修之后,能够继续的强健的使用下去,继续为我们的生产服务。而不是需要我们重新更换一个新的组件,那样成本太大,对我们的生产和效率极其的不利。

因此:

我们需要对我们使用的轮子足够了解,要做到这一点最简单的方法,就是直接看看他们是怎么制造的,他的工作原理又是什么。以及他可能会产生的问题(自身的缺陷)。PS:没有任何一种东西是完美的。我们所使用的,只是我们需要用到的那些地方,而不是整个全部,扬长避短。
在程序的世界中,要做到了解一个组件的实现机理,运作方式,对我们使用者而言,最简单,成本也最小的方式,就是阅读源码。一步步的拆开他,到他的最底层实现,在源码中,我们能够很容易的找到那些容易产生缺陷的地方,在以后的使用过程中,规避这些已经存在了的坑。在以后的使用过程中,即时出现了一些问题,我们也能在最短的时间内,解决问题。

总结

对一些我们接触的东西,我们不仅要知其然,还要知其所以然,如此,方能在问题发生的时候,用最小的成本,解决它。

*国辉
2016年8月11日晚23点于帝都*

0 0