发这篇文章是从看到一篇《也谈”轮子理论”》引起的,作者的观点是说,如果真的像轮子理论一样,那么这个世界上就没有了新技术的诞生。那是不是轮子理论本身的局限性呢?我个人有着不同的见解。

轮子理论这个的概念,我第一次看到是在一本图灵的反模式书上看到的,其中有一条反模式解决方案叫做不要重复发明轮子,就是说当我们做一个项目,或者需要一个技术的解决方案时,我们第一步不是去想,我们要如何解决这个问题,而是应该先去搜索资料,找到这个问题曾经有什么解决方案或者好的方法,我们把这个叫做“轮子理论”。

作者的观点是如果真的轮子理论广泛试用,那么当初有了JAVA为什么还需要.NET,有了Struts为什么还需要有Webwork,有了一个NHibernate为什么还要搞出一个LINQ出来,当初学马克思主义哲学的时候有这样一句话,叫马克思主义哲学是与时俱进的。当然,轮子理论也是一样。

究竟什么是轮子理论?

诚然,如果单纯地做应用,做商业项目,轮子理论是广泛适用的。项目周期短,时间紧,当你发明轮子结束后,便会发现用户已经催着你要项目了。而你的整个汽车还只有一个轮子而已。完蛋.........

我对轮子理论做了这样一个总结。轮子理论是先找到轮子,然后学会如何使用轮子,然后把这个轮子针对你的汽车做出适当的改善,当有一天发现你的轮子已经不再适用,或者说已经没有改善价值的时候,算了,抛弃轮子,开始发明你的心轮子。这才是轮子理论一个循序渐进的步骤!

说说微软的.NET Framework,当初Sun公司JAVA的如火如荼,微软并没有在第一时间推出.NET,而是在八年之后,当他发现了JAVA的很多弊端之后,开学效率低,框架没有业界标准,JVM效率偏低。于是才重新发明出了.NET这个大轮子。试想,如果微软在第一时刻不去看轮子,而马上就去发明新轮子,那今天的.NET会是如何?

废话说了一大堆,只是对每个质疑轮子理论的人提个建议,对于每个人来说,轮子理论还是普遍使用的,关键在于我们要理解一个正确的轮子理论模型!

08年过去,大学也即将毕业,年后要开始自己的第一份工作了,基于WorkFlow的开发,还真是个全新的挑战呢。总之,新年继续专注.NET,梦想不变!

一个设计反模式——究竟什么是轮子理论相关推荐

  1. 反模式:神仙大类和黄金大锤

    数学中有正数和负数 物理学有『物质』和『反物质』的存在 武侠小说中有九阳神功也有九阴真经 生活中有婚姻也有出轨 ...... 事物总是充满这种相互矛盾而统一的有趣现象. 对于GoF提出的23种设计模式 ...

  2. 设计模式杂谈——模式与反模式之争

    摘要:探究事物的反面性是一种哲学上的思考,物理学在"物质"之上提出并证实了"反物质"的存在,就像数学上有正数也有负数,武侠小说中有九阳神功也有九阴真经,生活中有 ...

  3. SOA系列文章(二):服务设计原理:服务模式和反模式

    服务设计系列的法则已经发展到最佳通信实践和取样相关编码的程度.本文提供了设计和实现网络服务的基本原理,并且对面向服务的体系结构(SOA)的相关概念做了一个简要的回顾,以及有关于几种模式和反模式的详细讨 ...

  4. 反模式设计_设计模式:模式或反模式,这就是问题

    反模式设计 我最近遇到了Wiki页面" Anti-pattern" ,其中包含详尽的反模式列表. 其中一些对我来说很明显. 他们中的一些让我想了一下,其他的让我想了更多. 然后,我 ...

  5. mysql 说说反模式设计_sql反模式分析1

    第二章:乱穿马路 2.1 目标:存储多值属性 2.2 反模式:格式化的逗号分隔列表   模糊匹配无法使用索引,影响性能:多表关联麻烦,却极大影响性能:执行聚合查询不方便开发和调试:更新某个字段值必须执 ...

  6. 微服务设计 10 大反模式和陷阱

    数据驱动迁移反模式(Data-Driven Migration) ​ 如上图所示,此种反模式的问题在于微服务的粒度没有最终确定之前就做了数据迁移,如此当不断的调整服务粒度时,那么数据库就免不了频繁迁移 ...

  7. mysql 说说反模式设计_关于反模式、设计和复用的一些想法

    在维护系统的时候发现有个工作经验超级丰富的同事在C#代码中使用了goto,这段代码是一个很长的方法,goto的作用是为了复用两段逻辑.当我第一次看到goto是为了复用一段C#代码的时候感觉无比诡异,总 ...

  8. 多线程编程反模式_编程反模式

    多线程编程反模式 您是否曾经进行过代码审查,记录了非常高的WTF / m? 您是否想知道所有这些错误代码的原因是什么? 在大多数情况下,导致原因1的原因是使用设计和编码反模式. 如果您喜欢定义,请参见 ...

  9. 网站设计支离破碎:究竟是谁之过

    --摘自<赢在设计> 我们认为公司对网站设计的态度是导致很多公司网站身处困境的主要原因.如果网站设计被视为一种扩大盈利能力和实现组织目标的方式,那么我们不会看到下面的统计数字: 在线购物车 ...

最新文章

  1. angularJS前台传list数组,后台springMVC接收数组
  2. C#中面向对象初使用-实现问好窗体程序
  3. CVPR 2018 论文解读集锦(9月26日更新)
  4. Linux如何修改用户名?
  5. php中files和FILRS,php获取文件内容最后一行示例
  6. 软件设计师--文件索引
  7. 中国双面柔性印刷电路板(FPC)市场趋势报告、技术动态创新及市场预测
  8. Java8 函数式编程之函数接口(上)
  9. 阿里云祝顺民:未来的网络是云网一体,应用感知不到网络的存在
  10. 计算机系统AD转换,AD和DA转换是什么意思?
  11. 鬼畜视频制作必备——vegas pro特别版歌声合成工具UTAU
  12. 亲测好用的Topaz AI图像降噪软件:DeNoise AI mac版(支持m1)
  13. 游戏角色设计具体步骤
  14. 鸡啄米:C++编程入门系列之目录和总结http://www.jizhuomi.com/software/129.html
  15. 武音硕士研究生《计算机音乐作曲》培训,武汉音乐学院2016年硕士考试《计算机音乐作曲》大纲及参考书目...
  16. 购物网站商城系统,购物网站毕业设计,B2C网上购物系统毕业设计
  17. 推荐一款远程控制软件Toesk。支持文件传输、高清画质、隐私屏、键盘鼠标映射等功能。
  18. 计算机组成原理实验四微程序,计算机组成原理实验七微程序计数器.doc
  19. day13_下 Class中三大护法 及常用属性 单例模式(扩展)
  20. 计算机应用基础19春在线作业2,东师计算机应用基础19春在线作业2【标准答案】.pdf...

热门文章

  1. 中国半导体材料市场投资潜力与发展动态研究报告2022版
  2. 全球及中国智能音箱市场规模产值及发展机遇研究报告2021-2027年
  3. 阻塞 、非阻塞;同步、异步
  4. CSS响应式:根据分辨率加载不同CSS的几个方法
  5. eclipse中导入spring-boot框架的jar包方法
  6. Windows10 家庭版添加【本地组策略编辑器】
  7. mysql数据库主从配置
  8. linux 定时任务
  9. canvas手机端绘图解决方案
  10. Memcached缓存实例