72. 经常重新造轮子

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

经常重新造轮子

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

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

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

原文:Reinvent the Wheel Often by Jason P Sage

谈谈自己造轮子

自己造还是不造轮子,这是一个哲学问题吗?
  • siddontang
  • siddontang
  • 2014年04月30日 08:33
  • 4761

重复造轮子的目的

1、研究造轮子的原理 2、轮子不满足现在的开发需要 3、装B http://www.cnblogs.com/skychen1218/p/5730316.html...
  • myfather103
  • myfather103
  • 2016年08月03日 11:02
  • 532

C++编程 - 真的不要重复造轮子吗

C++编程--真的不要重复造轮子吗 作者:flyfish 2014-3-14 在软件开发领域有一个著名的谚语-不要重复造轮子 Don't reinvent the wheel.   这句话做为你...
  • flyfish1986
  • flyfish1986
  • 2014年03月14日 19:08
  • 3788

到底是否应该重复造轮子

引言      之所以谈起这个话题,是因为和新公司同事的一次交流。他是LZ当时二面的面试官(以下简称CZ),看过LZ的github,因此知道LZ正在尝试写一个redis的Java客户端。在交流的过...
  • zuoxiaolong8810
  • zuoxiaolong8810
  • 2017年03月23日 11:44
  • 1225

在开发中如何才能避免重复造轮子和GET新技能

Google,GitHub,StackOverflow1.不是所有的程序员都不重复造轮子的:有些程序员就是喜欢自己造轮子。高手和菜鸟是不是都适宜这种想法姑且不论。但很多C++团队都喜欢自己写自己的字符...
  • qq_20172379
  • qq_20172379
  • 2017年04月18日 13:55
  • 543

【专业造轮子】:一位大神的编程之路,让我大吃一惊!

vczh,本名陈梓瀚,因知乎的个人信息介绍上写有 “专业造轮子”,所以江湖人称 “轮子哥”。 vczh 大学时代就在微软实习,毕业后即加入微软。开始时是在微软上海,后来进入北京的微软亚洲研究院。...
  • qq_23100787
  • qq_23100787
  • 2016年05月04日 22:20
  • 10602

程序员为什么热衷造轮子

“程序员为什么喜欢造轮子”,这是个老生常谈的话题,不过,里面还是有很多道道儿哈...
  • foruok
  • foruok
  • 2016年05月16日 06:50
  • 17041

我要造轮子之基于JDK的AOP实现

1 前言Aspect Oriented Programing,面向切面编程。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率...
  • p_3er
  • p_3er
  • 2016年03月10日 10:26
  • 711

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

写在前面本文只是个人在工作生活中的一些小感悟,诸位大神看过,如有同感,且会心一笑即可,很高兴您能有相同的感受。如有其它意见,您尽可将其附于评论。很高想能与您一起探讨。此致一些体会个人感觉,在实际的生产...
  • u014440417
  • u014440417
  • 2016年08月11日 23:05
  • 714

其实,学习编程的过程就是学习造轮子的过程,还是拥抱造轮子吧

前段时间, 在网上或者书籍里时常看到“尽量避免重复造轮子”的忠告,话是不错。可是我们也不能片面理解这个忠告。我们学习编程之初,不就是要慢慢学会自己造轮子吗?只不过,那些轮子很是粗陋、简单而已。从实现一...
  • iihero
  • iihero
  • 2008年03月04日 10:07
  • 3495
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:72. 经常重新造轮子
举报原因:
原因补充:

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