看了 《“山寨”框架3宗罪》
这篇贴有感。
关于是否应该重复造轮子的话题我觉得本身就是一个轮子,参与进来的不管是支持的也好反对的也好,在我看来倒是大都颇有兴致。
他们中有泼冷水放冷话的貌似已然站在某个技术制高点上口气颇为沧桑的“过来人”,也有充满理想就是不怕浇凉水的“技术小强”
据粗略的观察,“过来人”比较有力的一个观点是强调程序员应该怀着开放的心态,不要闭门造车。“技术小强”们的观点则主要是强调,实践是检验学习成果的最好办法。即使是一个写过某一不成功的 MVC 框架的人,对于流行的 MVC 框架的理解也往往比那些只是看过《XXX in action》,然后在某个公司级别项目里写过几个XML的人要深刻。
所以这些关于“闭门造车”的争论,其焦点并不在于该不该“造车”,而在于是不是应该“闭门”。 我觉得“闭门”是不对的,但是“造车”确是对程序员大大的有利。
于是我想起了小学课上讲的“小马过河”。对于“技术小强”们来说,别人的话随便他们说去,只要自己知道自己这次造轮子的目的就好。
另外,根据我不太仔细的观察,在JE上写 Java 的,造的轮子多半是 MVC, Dao ,由此看来MVC, ORM 是多么没有技术门槛的轮子,随便什么人就造了。不过话说回来,当初写 Hibernate 的那位仁兄,当初连 SQL 都不太熟就敢操刀,的确是颇有勇气的。现在看来,Hibernate 颇高的学习曲线是这个框架的败笔,毕竟复杂的框架方便的只是实现者,而不是使用者。这也从某些方面说明了一个框架的好坏。Hibernate 在学习曲线方面,无疑是不值得学习的。
分享到:
相关推荐
UIML为统一接口中间件库(Uniform Interface Middlewares Library),旨在提高底层代码的复用率,避免重复造轮子,提高开发效率 本项目基于 FreeRTOS 在 STM32 平台上运行,由一个轻量级调度框架和一系列周边模块构成...
1. 高效的资源利用:企业级容器平台需要能够高效地利用现有的 IT 资产,不重复造轮子。 2. 灵活的部署和管理:企业级容器平台需要能够灵活地部署和管理容器,满足企业的业务需求。 3. 高度的自动化和智能化:企业级...
想给主题加上一些设置选项,方便使用者灵活选择和定制,这时候后台框架就成了一个绕不过的话题,一般方法无外乎两种,一种是自己动手,丰衣足食,一种采用框架,不重复制造轮子。既然是新手,前者门槛就相对高些,在...
标题中的“又是轮子(不过是自备)”是一个程序员常用的俏皮话,暗示着虽然我们可能在重复造已有的轮子,但这次是自备的,即作者自己实现的一个功能。这里的“lucene3.0搜索数据库”指的是Apache Lucene,一个高性能、...
在Python的开发过程中,正确利用PyPI和各种第三方库,能极大地提高开发效率,降低重复造轮子的成本。同时,了解并熟悉Python的包管理和分发机制,是每个Python开发者必备的基本技能。无论是作为开发者的我们上传自己...
现在也有很多大学和公司公开了他们的ROS代码,这也避免了重复造轮子的现象,大大增加了产品的开发速度。 在该系统中,每个可执行文件称为节点,节点与节点之间的通讯方式有两种:一种是通过话题的方式,另一种是...
这部分内容极为丰富,为开发者提供了大量预先封装好的功能,大大减少了重复造轮子的工作。 高级主题部分涵盖了更复杂的话题,如生成器、上下文管理器、元类和类型系统。这些内容虽然较为深入,但对提升Python编程...
这样的工具通常会提供便利的API接口,简化开发流程,避免重复造轮子。 综上所述,多标签FrameTab是一个关于用户界面设计和开发的话题,涉及的技术主要包括Java Swing的JTabbedPane组件、事件监听、自定义组件和源码...
在实际开发中,这样的工具包极大地简化了开发流程,避免了重复造轮子,让开发者可以专注于业务逻辑而不是基础功能的实现。通过熟练掌握这些工具,你可以快速为你的应用程序或网站集成二维码生成功能,提高用户体验。...
通过导入外部模块,我们可以复用已有的功能,避免重复造轮子。例如,math模块提供了数学运算,os模块则提供了操作系统相关的功能。而理解包的组织结构,可以更好地管理和组织大型项目。 第16章的练习可能涉及文件...
只有深刻理解Unix的设计哲学,开发者才能避免重复造轮子,创造出更稳定、更高效、更易于维护的软件。 本书分为多个章节,每个章节都涵盖了一个特定的Unix编程主题。从基础的shell脚本编写,到进程控制、文件I/O、...
在实际应用中,使用这样的库可以帮助开发者节省时间,避免重复造轮子,并且由于是基于React的,它们通常能够很好地与其他React组件和状态管理工具集成。此外,JavaScript动画库往往注重性能,利用...
这种模式可以避免重复造轮子,加速新业务的孵化,同时降低运维复杂度。 总的来说,《阿里巴巴集团战略思想与架构实战》揭示了互联网巨头如何通过技术创新和战略规划来驱动业务发展,对于从事互联网行业的开发者和...
Django致力于将常见的Web开发模式抽象化,并提供一套强大的工具来应对频繁进行的编程任务,使开发者能够专注于解决有趣的关键问题,而非重复造轮子。 2. Python CGI编程示例: 在Django出现之前,使用Python进行Web...
新浪开放平台是新浪公司提供的一系列接口和服务,允许开发者通过API来访问和利用新浪的资源,如微博数据、用户...它可以帮助开发者快速上手,避免重复造轮子,同时也可以作为参考,解决在实际开发过程中遇到的问题。
它们提供了路由、中间件、模板引擎等功能,使得开发者能专注于业务逻辑,而不是重复造轮子。 此外,Web安全是不容忽视的话题,包括防止SQL注入、XSS攻击、CSRF攻击等。开发者需要理解这些威胁,采用相应措施如参数...
在实际开发中,这些工具类可以帮助开发者快速集成支付宝和微信支付的功能,避免了重复造轮子,提高了开发效率和代码质量。使用时,只需按照工具类的API文档进行调用,就能实现支付流程中的加密、验签以及数据转换...
这种做法很常见,因为可以借鉴他人的工作,节省开发时间,并且避免重复造轮子。在这个基础上进行修改,意味着对原始代码的理解和优化,以适应特定的需求。 动态生成导航菜单的关键在于获取数据。这可能涉及到从...
描述中的信息重复了标题,没有提供额外的技术细节。因此,我们无法从描述中获取更多的IT知识点。然而,我们可以推测这个话题可能包含以下几个方面的知识: 1. **产品设计**:移动式箱包的可拆卸角轮设计可能涉及到...
通过阅读和学习他人的代码,可以吸取经验,避免重复造轮子。同时,编写单元测试和持续集成也是确保代码质量的重要手段。此外,遵循软件工程原则,如模块化、抽象、封装和继承,可以帮助我们构建可扩展的系统。 总之...