浅谈源码--“造轮子”与“拆轮子”之间的关系
来源:互联网 发布:windows bt删不干净 编辑:程序博客网 时间:2024/05/20 09:49
写在前面
本文只是个人在工作生活中的一些小感悟,诸位大神看过,如有同感,且会心一笑即可,很高兴您能有相同的感受。如有其它意见,您尽可将其附于评论。很高想能与您一起探讨。
此致
一些体会
个人感觉,在实际的生产过程中,我们总是会遇到一些有时候需要用用到一个“轮子”的时候,有时候,我们只需要把别人造好的轮子拿过来用就是了。但有时候,有需要我们根据自己的需求,自己再造一个轮子。在这种情况下,我们需要的不只是知其然,还要知其所以然。知道他的长处,也要知道他的缺点和弊端。因为轮子的存在,有可能是别人为了方便当时自己的生产需求而根据实际情况生产的,尽管其业务可能会跟我们的需求可能会有很大的重叠,但其根源上还是和我们真正的目标之前或多或少的存在一些差异的。因此,我们在使用这个东西的时候,要知道他的原理和应用场景。
现实场景:
我们自己组装一个自行车的时候,我们有时候只需要一些已经现成的零件,而不是原材料,只有在个性化的时候,才会考虑到增加一些东西。但是,对于我们的自行车,我们则需要能尽可能的了解,因为在以后的使用中,自行车我们无法保证他在什么时候会出现一些问题,而我们也不可能及时的刚好出现在自行车的维修点旁边。因此我们要有一些解决基础问题的能力,以备不时之需。当自行车出现问题的时候,我们能够以最小的成本保证自行车的继续使用,而不是直接更换整体的零部件。那样做,面临的问题就是成本过大或者是我们无法解决当时遇到的问题。
场景映射:
在程序的世界中,我们随时可能用到别人开源的、制造好的工具–“轮子”,我们在使用他们搭建一个完整的系统的时候,我们是要将其控制在自己可控的范围内,即:即时他出现了这样活着那样的问题,我们也能保证我们的系统在经过我们的维修之后,能够继续的强健的使用下去,继续为我们的生产服务。而不是需要我们重新更换一个新的组件,那样成本太大,对我们的生产和效率极其的不利。
因此:
我们需要对我们使用的轮子足够了解,要做到这一点最简单的方法,就是直接看看他们是怎么制造的,他的工作原理又是什么。以及他可能会产生的问题(自身的缺陷)。PS:没有任何一种东西是完美的。我们所使用的,只是我们需要用到的那些地方,而不是整个全部,扬长避短。
在程序的世界中,要做到了解一个组件的实现机理,运作方式,对我们使用者而言,最简单,成本也最小的方式,就是阅读源码。一步步的拆开他,到他的最底层实现,在源码中,我们能够很容易的找到那些容易产生缺陷的地方,在以后的使用过程中,规避这些已经存在了的坑。在以后的使用过程中,即时出现了一些问题,我们也能在最短的时间内,解决问题。
总结
对一些我们接触的东西,我们不仅要知其然,还要知其所以然,如此,方能在问题发生的时候,用最小的成本,解决它。
*国辉
2016年8月11日晚23点于帝都*
- 浅谈源码--“造轮子”与“拆轮子”之间的关系
- 轮子
- 轮子
- 关于轮子跟造轮子。
- 【拆轮子系列】Retrofit 源码的简要分析
- 下次造轮子前先看看现有的轮子吧
- 记录造轮子的点点滴滴
- 重复造轮子的目的
- 【拆轮子系列】RxJava2 源码简要分析
- 拆轮子系列之剖析EventBus源码
- 图形学算法与相应的源码-帮助你重复的造三维图形学以及三维可视化领域的轮子
- 造轮子:补码实现与若干分析
- Python 造轮子/现有轮子 相关资料
- 自己造的爬虫的轮子
- 用不同的语言重复造轮子
- 重复造轮子:注释的使用
- 关于不要重复造轮子的二三事
- 这些年造过的轮子
- Android Studio 使用7-Eclipse项目转移到AS项目中
- 使用WinINet和WinHTTP实现Http访问
- bzoj3156(斜率优化)
- 编辑框下发空字符串导致手机崩溃异常
- 针对于Velocity官方翻译简单了解Velocity
- 浅谈源码--“造轮子”与“拆轮子”之间的关系
- scrapy笔记(2) - 小试牛刀 (抓取豆瓣推理小说信息)
- AVL树的旋转
- Transfer data between Activitys
- TOJ 3976.Change(dp或找规律)
- android——活动的启动模式
- 领域驱动设计系列文章(2)——浅析VO、DTO、DO、PO的概念、区别和用处
- 对于application一点理解
- C++面试宝典2011