可以使用框架但千万不要依赖框架

我们是由于效率和易用性的考虑才产生框架。框架能节省开发时间。框架强制使用公共的约定,因此它能有效地解决一些共有的问题,比如页面渲染,assert判断,安全或者应用配置等。这些共有的问题有个共通的特性是会在每个web应用上都用到。

框架是非常好的,它能让决定更连贯。框架能避免我们写一大堆自定义模块来实现这些性能,我们所需要做的就是将这些共用模块放在框架中实现。框架节省了我们不少的时间和精力,并且让扩展变得更容易。但是这也是问题的根本所在。

由于框架能在我们做代码决策的时候提供很多的帮助,因此我们就变得懒了起来。我们不去考虑如何使用抽象思维搭建一个干净清晰的系统,不去考虑最后的代码是否干净清晰,却依赖着框架来替我们实现这些需求。

对锤子来说,所有事物都是钉子

Abraham Kaplan说过的一句话能最好地控诉工具的缺点:把锤子给一个小孩,他会用锤子槌遇到的所有事物

当把这个道理用在框架上的时候,我们就是工具确定的牺牲者。当我们遇到需求不是很符合框架,我们就会犯懒。我们就会按照框架既定的方法来解决我们的问题。因为使用框架既定的方法来解决方法是最简单的,这时候我们已经忽略了如何设计对未来扩展等需求最好的代码了。

这就是衡量你是否更职业的时候了,交付对未来扩展最好的代码而不是交付最容易实现的代码。是为了以后的需求更好的设计你的代码还是让以后的人做需求的时候再考虑,这就是程序员的责任感问题了。作为一个更职业的开发者,我们必须不依赖框架独立思考。

这就是你的错

是不是经常听到某人在抱怨某个框架?我已经听见好多人抱怨过Rails了:“Rails应用总是糟糕的结构”或者“Rails测试总是这么慢”。最 开始,我也曾经这么认为。但是现在,每当我听到这些抱怨的时候,我就会意识到其实抱怨者是懒惰的。Rails,或者其他框架,只是一个工具而已,你要做的 是控制它。把坏代码归咎于无生命的框架只能说明你的不专业。

选择正确的工具,或者正确地使用工具

使用框架开发也是在写代码。作为一个开发者,你有权利选择如何实现需求。人们都希望能开发出干净整洁的代码,那样的话使用面向对象思想和合理的抽象就是非常重要的了。要开发出好的代码,我们必须仔细考虑我们的代码设计,特别是当使用框架的时候。

决定变得更专业

我们必须根据基本的需求来选择工具。框架确实能做很多事情,并且需求会决定整个代码结构。有的时候框架会很适合某个需求。但是当框架不适合某些需求的时候,你就有责任为了代码的清晰和干净修改框架或者封装框架。

此文为翻译,文章来源:http://blog.8thlight.com/myles-megyesi/2012/09/12/why-frameworks.html。


原文发布于微信公众号 - php(phpdaily)

原文发表时间:2015-11-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云计算D1net

具体问题需要具体分析 给云计算应用泼盆冷水

1 谨慎放在云端的应用 云计算市场现在存在着很多争议,其中争议最大的可能就是数据安全、应用灵活性、云端可扩展性等几方面的问题,本文我们暂且抛开云计算服务的这...

3296
来自专栏罗超频道

微信在试错中前行

导读:“微博认证”公众账号也可获得自定义菜单,公众账号底部已接入“广点通”广告,公众账号真的禁止朋友圈分享行为吗?请看解读。 近日微信公众平台...

2157
来自专栏Golang语言社区

转--容器技术的三大潜在隐患

近两年来,Linux的容器技术占据了世界企业IT市场的主导地位,它所要解决的问题就是虚拟化根本无法在应用软件开发和计算行业大规模应用,并允许企业世界真正拥抱像D...

2834
来自专栏HTML5学堂

3分钟读懂HTML5语言的特点

HTML5的跨平台技术 HTML5技术跨平台,适配多终端。传统移动终端上的Native App,开发者的研发工作必须针对不同的操作系统进行,成本相对较高。Nat...

2847
来自专栏成猿之路

考计算机二级,用这个软件,证书顺利到手!

1293
来自专栏云市场·精选汇

100W+小程序、4大能力升级,微信公开课开启小程序2.0时代

截至目前:已发布100万+小程序,市面上小程序开发者超过150万,第三方平台达5000多家;每位用户日均打开次数为4次,其中54%为主动访问。

1493
来自专栏BestSDK

开始一个新的 app 时,我在想些什么

文|xiaoxiao image.png 几年工作下来,我越发觉得,做好一个产品,有太多可以共用借鉴的范式和模块,而每个模块,也大多有比较成熟的外部解决方案。撇...

26010
来自专栏云计算D1net

VMware的云计算野心

虚拟化专业厂商VMware希望成为全球“云服务最大的提供商”之一,而避免与目前的IaaS市场领导者Amazon Web Services(AWS)直接竞争。...

2603
来自专栏沈唁志

如何才能让网站被搜索引擎快速收录

1605
来自专栏腾讯Bugly的专栏

哭,天天加班修Crash如何破!

先给大家讲个小故事吧! 2011年底,鹅厂内部出现一个“Crash监控”的服务后,开发某App的企鹅们发现了一个真相:原来自以为很稳...

2435

扫码关注云+社区