扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
Derek Sivers是CD Baby以及HostBaby的创建者,自CD Baby站点于1998年创建以来,经历了数次代码重写,从最初的HTML到之后的PHP,两年前Derek又将站点用rails重写,而如今又重新回归到PHP语言上来。
缘何如此?Derek在文中写道:2005年1月份,我在O’Reilly的Blog上撰文宣布,将放弃cdbaby.com站点原先十万行杂乱的PHP代码,并准备从头开始使用Rails将站点的代码重写。于是我雇用了当时最好的Rails程序员,开始着手这个庞大的计划...最初的几个月进展非常顺利,但是在后续的开发过程中,需求开始与Rails实现显得有些冲突,并且使项目陷入窘境,有时我不得不问自己放弃原先的计划而使用Rails是否真是值得的...两年之后,我们在rails开发上经历了各种挫折,最终发现总共才完成了期望工作量的一半。
Derek一直在思考这个问题“有没有什么是Rails能做而PHP做不到的?”答案是否定的,于是Derek决定摒弃两年来使用Rails编写的代码,重新使用一直熟悉的PHP来将网站全部重写。Derek在文中写道:
仅仅用了两个月,只有我一人进行开发,并且没有使用任何框架,仅是在vi编辑器之下,使用PHP重新编写了CD Baby整站的代码,而且效果出乎意料的好。这应该是我写出过最好的PHP代码,完全遵循MVC和DRY(Don't Repeat Yourself)的准则,这些获益应归功于使用Rails开发过程中得到的经验和智慧。
Derek进而总结了从Rails转回到PHP的七个原因:
有什么是Rails能做而PHP做不到的?...没有;
我们整个公司的Web代码都是用PHP写成的,请别忽视应用间的整合问题;
别要你不需要的额外功能;
PHP小巧而快速;
PHP代码完全按照我自己的方式运作;
我喜欢直接使用SQL;
语言就像女朋友:你觉得新的更好那是因为你有了进步。
当然,Derek并没有否定Rails框架的好处,并总结了Rails为开发者带来的益处,当然更重要的是Rails经验为开发者带来的对问题看法的转变和技术的提高等。
这些Rails的益处包括:通过Active Record将数据封装在模型类中,通过接口向Web应用提供数据,符合Martin Fowler提出的Active Record模式思想;具备自动加载(__autoload)机制;
真正的MVC分层设计;所有的HTML代码来自于抢有力的模板机制;极度简化的代码量。
Rails与PHP是面向敏捷Web开发的两种主要语言。针对两者在Web开发领域中的关系,JavaEye的站长robbin也曾做出过这样的评价:根据我的观察,其实现在互联网应用,PHP仍然是当仁不让的第一开发语言,占据了最大的市场份额。这是有内在的原因的,因为PHP超级简单易用,是当前 web开发技术当中,学习起来最快的了。有点编程基础的人,学习一天,第二天就可以干活了。对于互联网开发来说,速度是第一重要的事情,拖拖拉拉做不出来网站,机会就永远丧失掉了,对于熟练的开发人员来说,RoR可以提供比PHP还要快的开发速度,这就注定RoR肯定会流行。
在一篇名为“漫谈rails与php”的帖子中,从框架和语言、MVC、ORM以及各自优缺点等各方面都做了评论,axgle在结尾处这样写道:我想说的是php将继续发展下去,已经发布了的php5以及正在发展中的php6也将有一些新的特性加入。而rails也在不断发展中。我相信rails和php一道,都有各自的一席之地。
其实,语言或开发框架相关的争论并不鲜见,然而争论的最终结果往往是选择合适的语言或框架才是最正确的。在接触新技术的初期,不能仅靠对技术的热情而对不熟悉的领域主观臆断,因事先估计不足而使得结果事与愿违。程序的编写不仅要靠设计良好的语言和框架,靠经验的积累和技巧的沉淀有时才是最重要的。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者