正如你可能知道的那样,Derek Sivers是制作CD Baby的人,最终以一些大笔钱出售.他最初用PHP编写了它,然后在Rails中重写它.他的麻烦是传说中的东西:
我在Rails工作2年后转回PHP的7个原因
这篇文章是在2007年推出的,但是我最近迷上了Rails,我想知道在此期间是否有任何改变让Rails变得更加明智,或者我应该坚持使用我那个好丑的PHP女朋友?
有没有人同意Rails没有提供超过PHP的任何显着优势?
Austin Ziegler对该文写了一篇有趣的回复:
关于Derek Siver的回归PHP ...
它的要点是:
德里克出于错误的原因选择了这项技术.他选择部分是基于Rails的炒作,但他设想它是一个银色的子弹,可以神奇地使他的应用程序更好,因为它在Rails中.
Rails不适合Derek的CD Baby应用程序模型,Derek的应用程序模型比使用的技术更重要,因为它代表了他理解的业务.
他忽略了他现有的新技术专家.他和他的员工都不会因为玩弄它而知道Ruby.这不是一种被认为适合经验的技术; 这是管理层认为合适的技术(对不起Derek,你可能仍然会弄脏代码,但你仍然是管理层).
Derek将该项目作为一个整体环境进行重写,并进行了一个大日部署,而没有考虑随着时间的推移逐步进行调整的方法.几乎总是可以找到接口点,您可以一次更换一个碎片.最终,这就是Rails人员应该告诉你的:一次替换一个区域,每个区域都有不同的代码库.将它们作为REST-ful服务进行接口.不要让它们依赖于单个数据库模式.
重写现有网站几乎总是一个坏主意.很难让你的心脏翻新旧车轮.我从CGI重写了一个站点到一个Java应用服务器,并看到几个程序员因此而退出.首先,他们更喜欢旧的做事方式而不想学习Java.其次,我相信他们没有热情重写他们一直不情愿开始的大量遗留代码.最好在新任务上尝试Rails,看看它是如何运作的.至少那时你在心理动机抽奖活动中用PHP平衡了它.
我有使用PHP和Ruby + Ruby on Rails的经验(使用两者赚钱,但不是很多).
Ruby库要好得多.PHP的库是全局命名空间中函数的集合,具有不一致的名称和参数顺序.strpos
VS str_repeat
.strpos
第一个参数是大字符串,第二个参数是要查找的字符串.explode
第一个参数是要拆分的字符串,第二个参数是大字符串.这对我来说是个大问题.在使用PHP时我不得不查找很多东西,但在使用Ruby时则不然.我记得因为它们是一致的.方法的名称使参数顺序清晰.另一个:PHP strlen($str)
和vs count($arr)
在Ruby中它只是anything.length
.
Ruby语言比PHP好.它有闭包,良好的OO,良好的语法(这是主观的,但你需要更少的Ruby中的标点符号,这就是我经常出错的地方).
那是我的经历.试试两者,看看哪些对您有用.
最好的答案将是作者本人.他似乎再次回归RoR!:
前言
我以前的公司(CD Baby)是第一个大声转向Ruby on Rails的公司之一,然后更大声地切换回PHP(谷歌我读这个戏剧).Michael Hartl的这本书非常值得推荐,我不得不尝试它,Ruby on Rails Tutorial是我以前再次切换回Rails的.
http://railstutorial.org/book
事实上,浏览自己的网站证明了他回归RoR:
所有项目都将在Rails 3上实现标准化,而不是试图教会每个人我独特的PHP框架.
http://thoughts.pro/
那些从Rails变成PHP的人只是按照他的着名文章,现在是时候再次回到Rails了!
我从Derek Silvers那里读到这篇文章.有一些奇怪的事情.他讲述了一个失控的项目故事,拖了几个月,最终不得不放弃.他将此归咎于Rails框架.然而,他从未说过导致项目失败的Rails.如果他提供一些可靠的信息,这篇文章会更加可信,但他甚至没有提到Rails让他失望的一个特定地方.他最接近的是说他们的"需求"(?)与Rails的偏好发生冲突(哪些?怎么样?)
与此同时,全世界的人们(包括我自己)都在使用Ruby on Rails在合理的时间内实现复杂的Web应用程序.
鉴于缺乏细节,或者根本没有任何具体的技术信息,在Derek的文章中,很可能由于Rails无关的任何原因导致项目失败.
最初的问题是"我应该听从Derek Silvers关于从PHP迁移到Rails的警告吗?" 我的答案是否定的,他的"警告"相当于一个模糊的轶事,零支持证据.忽略它们是完全安全的.
你应该在Rails中重新实现一个PHP应用程序吗?那是另一个问题.那个没有全面的答案.这完全取决于具体情况.