`
zozoh
  • 浏览: 61541 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

重复造轮子的话题

阅读更多

看了 《“山寨”框架3宗罪》 这篇贴有感。

关于是否应该重复造轮子的话题我觉得本身就是一个轮子,参与进来的不管是支持的也好反对的也好,在我看来倒是大都颇有兴致。
他们中有泼冷水放冷话的貌似已然站在某个技术制高点上口气颇为沧桑的“过来人”,也有充满理想就是不怕浇凉水的“技术小强”

据粗略的观察,“过来人”比较有力的一个观点是强调程序员应该怀着开放的心态,不要闭门造车。“技术小强”们的观点则主要是强调,实践是检验学习成果的最好办法。即使是一个写过某一不成功的 MVC 框架的人,对于流行的 MVC 框架的理解也往往比那些只是看过《XXX in action》,然后在某个公司级别项目里写过几个XML的人要深刻。

所以这些关于“闭门造车”的争论,其焦点并不在于该不该“造车”,而在于是不是应该“闭门”。 我觉得“闭门”是不对的,但是“造车”确是对程序员大大的有利。

于是我想起了小学课上讲的“小马过河”。对于“技术小强”们来说,别人的话随便他们说去,只要自己知道自己这次造轮子的目的就好。

另外,根据我不太仔细的观察,在JE上写 Java 的,造的轮子多半是 MVC, Dao ,由此看来MVC, ORM  是多么没有技术门槛的轮子,随便什么人就造了。不过话说回来,当初写 Hibernate 的那位仁兄,当初连 SQL 都不太熟就敢操刀,的确是颇有勇气的。现在看来,Hibernate 颇高的学习曲线是这个框架的败笔,毕竟复杂的框架方便的只是实现者,而不是使用者。这也从某些方面说明了一个框架的好坏。Hibernate 在学习曲线方面,无疑是不值得学习的。

 

分享到:
评论
18 楼 zozoh 2009-05-20  
是啊连 jQuery 都尺寸越来越大了
但愿 Nutz 别膨胀的太快,现在它只有 400K 多一些
17 楼 kjj 2009-05-20  
开始都是轻巧的,后来需要满足的太多,就不怎么轻巧了,是这个理么,只有天才才能做到这点,webwork,struts2,spring,那个逃出这个轮回!!
16 楼 zozoh 2009-05-19  
天机老人 写道
郁闷,估计也只有对sql不是很了解的人才敢石破天惊的搞同个Hibenrate出来!
我的实质上使用Hibernate比使用jdbc真的方便太多了!

但是我真的有点感觉他好重啊!(也许有人会问这也叫重啊!)
其实我也想找一种薄薄的封闭方式,Lz说他只是写的薄薄的封闭,让我激情澎湃,看不止是只有我一个人是如此想的!已经有人付诸实施了!
而且我很讨厌mvc + s + d的开发方式了。
我想找一种一气呵成的方式,大家推荐我去研究gog如果不想离开java的话。但是我不太喜欢换个效率如此低的。

啥样的开发才是一气呵成的呢?ror的方式是最优的吗?我在想……


现在的 Nutz 的 MVC 我个人觉得不够一气呵成,如果想一气呵成,必须要一组好工具,我现在就正在写...
我希望这组工具也是轻巧
15 楼 zozoh 2009-05-19  
主要得看,到底有多顺手了
另外 Nutz 框架的确是不依赖任何框架的,它只依赖 Servlet/JSP 规范以及 Datasource 接口
14 楼 wangxin0072000 2009-05-19  
自己写一个这样的东西其实也还行,不算太难,但是根据我的不成功的经验是:
你写的框架依赖于其他框架吗?如果依赖,那么这些框架升级了,你的框架如何升级?你写的框架本身是否会升级,如果升级代码如何维护。文档如何维护。

其实这些都不是问题---------如果有时间的话

可是问题又来了,你有这么多时间维护一个只有你一个人用着顺手的东西吗?
13 楼 yueritian 2009-05-19  
统一楼上,用起来最顺手的,还是自己写出来的东西,自己才知道自己最需要啥!
12 楼 zozoh 2009-05-18  
天机老人 写道
郁闷,估计也只有对sql不是很了解的人才敢石破天惊的搞同个Hibenrate出来!
我的实质上使用Hibernate比使用jdbc真的方便太多了!

但是我真的有点感觉他好重啊!(也许有人会问这也叫重啊!)
其实我也想找一种薄薄的封闭方式,Lz说他只是写的薄薄的封闭,让我激情澎湃,看不止是只有我一个人是如此想的!已经有人付诸实施了!
而且我很讨厌mvc + s + d的开发方式了。
我想找一种一气呵成的方式,大家推荐我去研究gog如果不想离开java的话。但是我不太喜欢换个效率如此低的。

啥样的开发才是一气呵成的呢?ror的方式是最优的吗?我在想……


最优的开发方式是,自己有一个代码库(或称框架),自己还有一组工具,用来根据自己的编码习惯生成代码。而手工编写的代码基本只和业务相关。
框架的目的是让工具生成尽量少的代码
工具的目的是让手工编写尽量少的代码
这,就很爽了 
11 楼 night_stalker 2009-05-17  
ruby 最简邪道: sinatra + sequel + haml + sass

效率往往是算法问题。
10 楼 天机老人 2009-05-17  
郁闷,估计也只有对sql不是很了解的人才敢石破天惊的搞同个Hibenrate出来!
我的实质上使用Hibernate比使用jdbc真的方便太多了!

但是我真的有点感觉他好重啊!(也许有人会问这也叫重啊!)
其实我也想找一种薄薄的封闭方式,Lz说他只是写的薄薄的封闭,让我激情澎湃,看不止是只有我一个人是如此想的!已经有人付诸实施了!
而且我很讨厌mvc + s + d的开发方式了。
我想找一种一气呵成的方式,大家推荐我去研究gog如果不想离开java的话。但是我不太喜欢换个效率如此低的。

啥样的开发才是一气呵成的呢?ror的方式是最优的吗?我在想……
9 楼 zozoh 2009-04-08  
<div class="quote_title">maoxiaolu2000 写道</div>
<div class="quote_div">大家老拿轮子打框架的比方,根本就是不对的。所以才有那么多争论。<br /><br />先好好想想吧,<span style="color: #ff0000;">框架是轮子吗?</span><span style="color: #ff0000;">做框架是发明轮子吗?</span>这个问题都没弄明白就别先辩来辩去了<br /><br /><a href="http://baike.baidu.com/view/166497.htm" target="_blank">http://baike.baidu.com/view/166497.htm</a></div>
<p> </p>
<p>现在天儿热了,这是一个让人很凉快的观点,哈哈</p>
8 楼 maoxiaolu2000 2009-04-08  
大家老拿轮子打框架的比方,根本就是不对的。所以才有那么多争论。

先好好想想吧,框架是轮子吗?做框架是发明轮子吗?这个问题都没弄明白就别先辩来辩去了

http://baike.baidu.com/view/166497.htm
7 楼 gafking 2009-04-08  
对于抱着陈旧的技术,不动手研究新事物的专职架构师来说,只能是害人害己。专职的应该是业务分析人员,而不是系统架构人员。
6 楼 男儿当 2009-04-07  
coolnight 写道
liujunsong 写道
自己真正动手写一个基础框架,
收益是很大的
事非经过不知难




兄台看读库的 哈哈


确实是如此, 所以最BS那些几乎不写代码只画图的所谓架构师



不会编码 或 总也编不明白  ,由这些人来设计~~~~~ 我来实现。


苦命的说~~~~
5 楼 coolnight 2009-04-07  
liujunsong 写道
自己真正动手写一个基础框架,
收益是很大的
事非经过不知难




兄台看读库的 哈哈


确实是如此, 所以最BS那些几乎不写代码只画图的所谓架构师
4 楼 zozoh 2009-04-07  
liujunsong 写道
自己真正动手写一个基础框架,
收益是很大的
事非经过不知难


嗯,有时间,我也回去看你的框架的,希望你的介绍能更丰富一点
3 楼 zozoh 2009-04-07  
unsid 写道
“你确信需要吗?你真的确信需要吗?”
写一个框架不难,难得是写一个在高并发环境下经得起考验的,切实解决了某些开发不利方面问题的框架,框架切不可人云亦云,“别人也有咱们也做”,那种情况下几乎99%写的不如别人好,写一个框架是在充分透彻研究别人框架后才可行的,如今框架盛行是由于这么一个事实“没有任何一个框架能适应所有环境”,不断发现主流框架在现有环境中的“水土不服”点,才能给造一个框架提供非常充分的理由,换言之,框架如同文章,要有核心思想和目标。


同意这种观点,小学老师就教过,要想写好作文,就要平时多练习。
2 楼 liujunsong 2009-04-07  
自己真正动手写一个基础框架,
收益是很大的
事非经过不知难
1 楼 unsid 2009-04-06  
“你确信需要吗?你真的确信需要吗?”
写一个框架不难,难得是写一个在高并发环境下经得起考验的,切实解决了某些开发不利方面问题的框架,框架切不可人云亦云,“别人也有咱们也做”,那种情况下几乎99%写的不如别人好,写一个框架是在充分透彻研究别人框架后才可行的,如今框架盛行是由于这么一个事实“没有任何一个框架能适应所有环境”,不断发现主流框架在现有环境中的“水土不服”点,才能给造一个框架提供非常充分的理由,换言之,框架如同文章,要有核心思想和目标。

相关推荐

    基于STM32和FreeRTOS的电控统一接口中间件库

    UIML为统一接口中间件库(Uniform Interface Middlewares Library),旨在提高底层代码的复用率,避免重复造轮子,提高开发效率 本项目基于 FreeRTOS 在 STM32 平台上运行,由一个轻量级调度框架和一系列周边模块构成...

    企业级容器平台介绍及案例分享.pdf

    1. 高效的资源利用:企业级容器平台需要能够高效地利用现有的 IT 资产,不重复造轮子。 2. 灵活的部署和管理:企业级容器平台需要能够灵活地部署和管理容器,满足企业的业务需求。 3. 高度的自动化和智能化:企业级...

    wordpress主题选项框架中文版

    想给主题加上一些设置选项,方便使用者灵活选择和定制,这时候后台框架就成了一个绕不过的话题,一般方法无外乎两种,一种是自己动手,丰衣足食,一种采用框架,不重复制造轮子。既然是新手,前者门槛就相对高些,在...

    又是轮子(不过是自备): lucene3.0搜索数据库(最简单形式)

    标题中的“又是轮子(不过是自备)”是一个程序员常用的俏皮话,暗示着虽然我们可能在重复造已有的轮子,但这次是自备的,即作者自己实现的一个功能。这里的“lucene3.0搜索数据库”指的是Apache Lucene,一个高性能、...

    PyPI 官网下载 | artap-2020.4.30.1-py3-none-any.whl

    在Python的开发过程中,正确利用PyPI和各种第三方库,能极大地提高开发效率,降低重复造轮子的成本。同时,了解并熟悉Python的包管理和分发机制,是每个Python开发者必备的基本技能。无论是作为开发者的我们上传自己...

    带移动底盘的机械臂控制系统设计.pdf

    现在也有很多大学和公司公开了他们的ROS代码,这也避免了重复造轮子的现象,大大增加了产品的开发速度。 在该系统中,每个可执行文件称为节点,节点与节点之间的通讯方式有两种:一种是通过话题的方式,另一种是...

    Python 2.7.2 文档

    这部分内容极为丰富,为开发者提供了大量预先封装好的功能,大大减少了重复造轮子的工作。 高级主题部分涵盖了更复杂的话题,如生成器、上下文管理器、元类和类型系统。这些内容虽然较为深入,但对提升Python编程...

    简单好用的 多标签FrameTab

    这样的工具通常会提供便利的API接口,简化开发流程,避免重复造轮子。 综上所述,多标签FrameTab是一个关于用户界面设计和开发的话题,涉及的技术主要包括Java Swing的JTabbedPane组件、事件监听、自定义组件和源码...

    产生可以加入logo图的二维码的jar包2

    在实际开发中,这样的工具包极大地简化了开发流程,避免了重复造轮子,让开发者可以专注于业务逻辑而不是基础功能的实现。通过熟练掌握这些工具,你可以快速为你的应用程序或网站集成二维码生成功能,提高用户体验。...

    python编程从入门到实践第16章练习题.zip

    通过导入外部模块,我们可以复用已有的功能,避免重复造轮子。例如,math模块提供了数学运算,os模块则提供了操作系统相关的功能。而理解包的组织结构,可以更好地管理和组织大型项目。 第16章的练习可能涉及文件...

    Unix编程艺术 中文版

    只有深刻理解Unix的设计哲学,开发者才能避免重复造轮子,创造出更稳定、更高效、更易于维护的软件。 本书分为多个章节,每个章节都涵盖了一个特定的Unix编程主题。从基础的shell脚本编写,到进程控制、文件I/O、...

    可用于内联样式库的一组动画

    在实际应用中,使用这样的库可以帮助开发者节省时间,避免重复造轮子,并且由于是基于React的,它们通常能够很好地与其他React组件和状态管理工具集成。此外,JavaScript动画库往往注重性能,利用...

    阿里巴巴集团战略思想与架构实战

    这种模式可以避免重复造轮子,加速新业务的孵化,同时降低运维复杂度。 总的来说,《阿里巴巴集团战略思想与架构实战》揭示了互联网巨头如何通过技术创新和战略规划来驱动业务发展,对于从事互联网行业的开发者和...

    Django book 2.0

    Django致力于将常见的Web开发模式抽象化,并提供一套强大的工具来应对频繁进行的编程任务,使开发者能够专注于解决有趣的关键问题,而非重复造轮子。 2. Python CGI编程示例: 在Django出现之前,使用Python进行Web...

    新浪开放平台示例代码

    新浪开放平台是新浪公司提供的一系列接口和服务,允许开发者通过API来访问和利用新浪的资源,如微博数据、用户...它可以帮助开发者快速上手,避免重复造轮子,同时也可以作为参考,解决在实际开发过程中遇到的问题。

    web应用开发技术 课件

    它们提供了路由、中间件、模板引擎等功能,使得开发者能专注于业务逻辑,而不是重复造轮子。 此外,Web安全是不容忽视的话题,包括防止SQL注入、XSS攻击、CSRF攻击等。开发者需要理解这些威胁,采用相应措施如参数...

    支付宝,微信加密,数据转换工具类

    在实际开发中,这些工具类可以帮助开发者快速集成支付宝和微信支付的功能,避免了重复造轮子,提高了开发效率和代码质量。使用时,只需按照工具类的API文档进行调用,就能实现支付流程中的加密、验签以及数据转换...

    C#左侧导航菜单(动态生成)

    这种做法很常见,因为可以借鉴他人的工作,节省开发时间,并且避免重复造轮子。在这个基础上进行修改,意味着对原始代码的理解和优化,以适应特定的需求。 动态生成导航菜单的关键在于获取数据。这可能涉及到从...

    电信设备-一种用于移动式箱包的可拆卸角轮.zip

    描述中的信息重复了标题,没有提供额外的技术细节。因此,我们无法从描述中获取更多的IT知识点。然而,我们可以推测这个话题可能包含以下几个方面的知识: 1. **产品设计**:移动式箱包的可拆卸角轮设计可能涉及到...

    程序设计实践..算法与数据结构

    通过阅读和学习他人的代码,可以吸取经验,避免重复造轮子。同时,编写单元测试和持续集成也是确保代码质量的重要手段。此外,遵循软件工程原则,如模块化、抽象、封装和继承,可以帮助我们构建可扩展的系统。 总之...

Global site tag (gtag.js) - Google Analytics