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

我们是由于效率和易用性的考虑才产生框架。框架能节省开发时间。框架强制使用公共的约定,因此它能有效地解决一些共有的问题,比如页面渲染,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 条评论
登录 后参与评论

相关文章

来自专栏Data Analysis & Viz

资源《机器学习基础:案例研究》by 华盛顿大学

此前分享了两个机器学习相关的资源,即《最全深度学习资源集合(Github:Awesome Deep Learning)》和《动手学深度学习》by Amazon ...

701
来自专栏机器之心

资源 | 下一代PS工具:Adobe照片级图像风格转换的Torch实现

选自arxiv 作者:栾福军等 机器之心编译 参与:李泽南、微胖 康奈尔大学与 Adobe 的研究者们最近发布了一项通过卷积神经网络进行照片风格迁移的研究。随后...

34111
来自专栏人工智能LeadAI

关于深度学习框架Hamaa与Python API文档生成工具Sophon

当时我学习Deep Learning已有两个月,看了很多论文、教程与博客,于是尝试着去阅读Keras的源代码来学习别人是怎么实现的,尤其是back propa...

863
来自专栏ATYUN订阅号

2017最流行的十大Python库

年末是你需要思考过去一年的成就的时候。对于程序员来说,这通常是回顾今年发布的或者最近流行的开源库,因为它们是解决特定问题的绝佳工具。 在过去的两个多年中,我们都...

2967
来自专栏专注 Java 基础分享

本专题的相关信息说明

我始终坚信一句话,在这里分享给大家,望共勉:一个人的潜力要高于一切。在我们编程行业,一个人的潜力指的就是他的编程内功。为什么大厂更愿意招基础好的人即便它们什么框...

3465
来自专栏新智元

MXNet 作者李沐:用深度学习做图像分类,教程+代码

1305
来自专栏极客生活

学个Python爽一把

现在Python已经在编程届家喻户晓了,有各种各样Python从入门到精通的文章,每个软件公司里也都至少有一个会Python的人。

591
来自专栏非著名程序员

Codecademy 你值得拥有,非常棒的编程学习网站

Codecademy 它是一个免费有趣的在线互动编程学习网站,目前提供了 HTML/CSS/PHP/Javascript/Ruby/jQuery/Python...

774
来自专栏java一日一条

为什么我要写自己的框架?

其实说白了框架就是使用别人造好的轮子。在软件开发里面就是command+C/command+V。

511
来自专栏C语言及其他语言

程序员的18个有趣的事实

8、如今的编程是一场程序员和上帝的竞赛,程序员企图开发出来更好更大的傻瓜都会用的软件,而上帝总能创造出更‘大’更‘好’的傻瓜,所以,上帝总是赢。

911

扫描关注云+社区