72. 经常重新造轮子

翻译 2013年12月03日 18:13:04

经常重新造轮子

        “用一些已有的东西就可以了,重新造轮子是很傻的...”

        你否曾经听说过这句话或者类似的说法?肯定的!每个开发人员和学生都可能经常听到这样的论调。然而为什么呢?为什么重新造轮子这么不被赞同?因为,通常情况下,已有代码是管用的。它已经经过了一定的质量控制、严格测试,而且成功应用了。此外,投入重新创造的时间和精力的回报不太可能比使用已有的产品和代码库更值得。你应该为重造轮子而费心吗?何故?何时?
        也许你已经读过了软件开发模式相关的刊物,或者软件设计的著作。不管里面包含的信息多么精彩,这些书籍都可能催人入睡。看一部航海的影片与真正去航海是完全不同的,同样,使用已有的代码与你自己重头设计软件、测试它、弄坏它、修复它并一直改进它也是完全不同的。
        重造轮子不只是编码练习,是如何从各种已存在的内部组件中获得丰富知识。你知道内存管理是如何工作的吗?虚拟分页法?可以自己实现这些吗?双向链表呢?动态数组类?ODBC客户端?你可以自己写一个类似某个自己熟悉又喜欢的图形用户界面吗?你能不能创建自己的浏览器小工具?你知道何时写一个时分利用系统,而何时写多线程系统吗?如何在文件数据库和内存数据库中选择?大多数程序员从来没有自己创建过这些软件实现的核心部件,因而也没有它们如何工作的详细知识。结果是所有这些软件都被看成像是能工作的神秘黑盒子。只了解水的表面不能发现下面的危险,不深入了解软件开发底层的东西会让你创建优秀作品的能力大大受限。
        重造轮子并在其中犯错比一开始就做对更有价值。在尝试和犯错的过程中取得的教训是有情绪成分的,这是阅读一本科技书籍无法取得的!

        学习到的知识和书本中的理论是很重要的,但要成为一名伟大的程序员,积累经验和学习知识同样重要。重造轮子对于程序员的教育和技能就如同举重对于健美的人来说一般重要。

原文:Reinvent the Wheel Often by Jason P Sage

如何重新发明短信息这个古老的轮子

重新发明轮子vs. 从0到1美国有句谚语叫做“不要重新发明轮子”,大概的意思就是说,别人已经做出来的东西,你就不要再花时间下去重新再做一遍了。可能很多有意创业的朋友看了这句话后,再结合从Peter T...

谷歌较劲阿里云:重新发明的轮子惹麻烦

9月17日凌晨消息,过去的四天时间里,谷歌和阿里云之间的较劲逐渐升温。双方的争论的焦点,看似是技术层面纠纷,实则在争夺产业未来。阿里云OS重新发明轮子式的自主研发,最终成为谷歌整顿Android产业的...
  • cometwo
  • cometwo
  • 2012年09月18日 21:51
  • 2306

基于C++ 造车的必备轮子 值得推荐的C/C++框架和库

值得推荐的C/C++框架和库

造轮子 | 如何设计一个面向协议的 iOS 网络请求库

最近开源了一个面向协议设计的网络请求库 MBNetwork,旨在减少业务层做网络请求开发时的代码量,从而提高业务层开发效率。...
  • mmoaay
  • mmoaay
  • 2017年02月05日 19:50
  • 8848

造轮子--QTreeWidget节点之精确搜索

由于项目需要对QTreeWidget树节点进行搜索,所以就做了一个精确搜索树节点文本的轮子。 搜索基本说明(搜索说明引用自这里):       一般搜索方式有两种:精确搜索和模糊搜索。下面我分两部分...

Android 多线程文件断点下载器实现(造轮子系列)(一)

1.介绍慢慢造轮子,在造轮子的过程中学习android相关的原理和设计模式。先开始一步步实现多线程文件断点下载器。这次的多线程文件断点下载器,要实现以下几点: 1. 断点续传,不只是单纯的点个暂停开...

【造轮子系列】一个选择星期的工具——SweepSelect View

【造轮子系列】一个选择星期的工具——SweepSelect View简介首先介绍一下这个自定义View的作用,先看图: 单选模式: 多选模式: 简单来说,就是一个通过滑动的方式来进行选择的工具...

Java 取集合的差集,list集合或者map集合,都可以取差集。使用guava工具类来做。而不是重复的造轮子。

在使用集合的时候,我们有时候需要取两个集合的差集,这两个集合一般是List类型的集合。 一般情况下,要是我们自己去造轮子的话 ,那也简单。 只是。因人而异,造出来的轮子的质量也是参差不齐。 既如此,何...

继续造轮子吧JS版HashMap

同样的是HashMap的JS版本,网上也有很多,我只是chong'fu

论apache重复造的轮子

今天分享一下apache所重复造的轮子(FileUtils.readLines)在org.apache.cxf.helpers 这个包下有个工具类也叫做FileUtils,和我们平时常用的 org.a...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:72. 经常重新造轮子
举报原因:
原因补充:

(最多只允许输入30个字)