我们是一家使用 php 作为开发语言的网络开发公司,但我们正在努力提高代码质量,尽量减少错误。我们发现 PHP 使得生成草率代码有些“容易”,因此我们正在考虑将 RoR 作为替代方案。 RoR 是否有助于提高代码质量?我们想开始使用 TDD,RoR 是否有助于采用这种方法?总而言之,是否值得开始用这项新技术培训我们的开发人员,还是我们应该继续开发 PHP 并投资提高他们的 PHP 技能?我们认为“全新”的开始和 RoR 作为一种令人愉快的语言的声誉可能有助于朝这个方向发展。
更新:正如@konfoce 所建议的,也许我应该问一下 RoR 提供的哪些功能集可能使其成为比 PHP 框架更好的选择,就帮助开发人员生成高质量的代码而言?我正在考虑语法、TDD 集成、帮助确保 DRY 等
最佳答案
在 PHP 上比较 Rails 和 PHP 并不公平。毕竟,Rails 是一个平台,而 PHP 是一种语言。
如果将 PHP 与 Ruby 作为一种语言进行比较,那么,我个人认为 Ruby 更好。 PHP(对我而言)感觉像是从服务器指令列表中有机地发展而来的东西。 Ruby 似乎更有凝聚力,正如他的创造者所说,它被认为是程序员所喜欢的。
同样,我无法将 Ruby on Rails 与其他 PHP 框架进行比较,因为我没有使用过任何框架(我只对 Drupal 和 Wordpress 有经验)。
对我来说,Ruby on Rails 与众不同的地方(尽管我听说其他人现在正在使用这些想法)是:
您会注意到我没有过多地谈论技术特性。那是因为对我来说,让 Rails 变得伟大的不是“技术”,而是“行为”。选择的语言或平台本身反射(reflect)了一种心态。对我来说,这种心态是 Rails 最好的特性。
在我看来,任何接受这种思维方式的程序员都会写出更好的代码。如果他用 PHP 编程,他只会产生更好的 PHP。唯一的先决条件是他至少喜欢一点点编程,并且他有一颗好奇的心。这不是为那些只是为了把食物放在 table 上工作的代码猴子准备的。
他会从其他 PHP 框架中得到同样的东西吗?我不知道。也许吧。
如果您担心重新开始的成本,那么继续做您已经知道的事情 (PHP) 来赚钱,但是在 Rails 上开始一个小项目(也许是内部项目)。您的 PHP 代码会逐渐变得更好。
... 直到您的开发人员告诉您他们厌倦了 PHP,他们只想使用 Ruby :)
关于php - 采用 Ruby on Rails 提高产品质量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4404117/
前言作为一名程序员,自己的本质工作就是做程序开发,那么程序开发的时候最直接的体现就是代码,检验一个程序员技术水平的一个核心环节就是开发时候的代码能力。众所周知,程序开发的水平提升是一个循序渐进的过程,每一位程序员都是从“菜鸟”变成“大神”的,所以程序员在程序开发过程中的代码能力也是根据平时开发中的业务实践来积累和提升的。提高代码能力核心要素程序员要想提高自身代码能力,尤其是新晋程序员的代码能力有很大的提升空间的时候,需要针对性的去提高自己的代码能力。提高代码能力其实有几个比较关键的点,只要把握住这些方面,就能很好的、快速的提高自己的一部分代码能力。1、多去阅读开源项目,如有机会可以亲自参与开源
注意:本文主要掌握DCN自研无线产品的基本配置方法和注意事项,能够进行一般的项目实施、调试与运维AP基本配置命令AP登录用户名和密码均为:adminAP默认IP地址为:192.168.1.10AP默认情况下DHCP开启AP静态地址配置:setmanagementstatic-ip192.168.10.1AP开启/关闭DHCP功能:setmanagementdhcp-statusup/downAP设置默认网关:setstatic-ip-routegeteway192.168.10.254查看AP基本信息:getsystemgetmanagementgetmanaged-apgetrouteAP配
基础版云数据库RDS的产品系列包括基础版、高可用版、集群版、三节点企业版,本文介绍基础版实例的相关信息。RDS基础版实例也称为单机版实例,只有单个数据库节点,计算与存储分离,性价比超高。说明RDS基础版实例只有一个数据库节点,没有备节点作为热备份,因此当该节点意外宕机或者执行重启实例、变更配置、版本升级等任务时,会出现较长时间的不可用。如果业务对数据库的可用性要求较高,不建议使用基础版实例,可选择其他系列(如高可用版),部分基础版实例也支持升级为高可用版。基础版与高可用版的对比拓扑图如下所示。优势 性能由于不提供备节点,主节点不会因为实时的数据库复制而产生额外的性能开销,因此基础版的性能相对于
我有三个模型:User、Product、Offer以及这些模型之间的关系问题。场景:用户1发布了一个产品用户2可以向用户1发送报价,例如10美元用户1可以接受或拒绝提议我现在的问题是:用户、产品和报价之间的正确关系是什么?我如何处理那些“接受或拒绝”操作?是否有更好的解决方案?用户模型:classUser:productsend产品型号:classProduct:usersend提供模型:classOffer提前致谢:)编辑:我正在使用Rails3.2.8 最佳答案 警告:小小说来了第1部分:设置关联我建议阅读Railsguideo
安全产品安全网关类防火墙Firewall防火墙防火墙主要用于边界安全防护的权限控制和安全域的划分。防火墙•信息安全的防护系统,依照特定的规则,允许或是限制传输的数据通过。防火墙是一个由软件和硬件设备组合而成,在内外网之间、专网与公网之间的界面上构成的保护屏障。下一代防火墙•下一代防火墙,NextGenerationFirewall,简称NGFirewall,是一款可以全面应对应用层威胁的高性能防火墙,提供网络层应用层一体化安全防护。生产厂家•联想网御、CheckPoint、深信服、网康、天融信、华为、H3C等防火墙部署部署于内、外网编辑额,用于权限访问控制和安全域划分。UTM统一威胁管理(Un
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我来自C、php和bash背景,很容易学习,因为它们都有相同的C结构,我可以将其与我已经知道的联系起来。然后2年前我学了Python并且学得很好,Python对我来说比Ruby更容易学。然后从去年开始,我一直在尝试学习Ruby,然后是Rails,我承认,直到现在我还是学不会,讽刺的是那些打着简单易学的烙印,但是对于我这样一个老练的程序员来说,我只是无法将它
我一直在学习Ruby,所以我想我应该尝试一下项目中的一些Euler难题。尴尬的是,我只完成了问题4...问题4如下:Apalindromicnumberreadsthesamebothways.Thelargestpalindromemadefromtheproductoftwo2-digitnumbersis9009=91×99.Findthelargestpalindromemadefromtheproductoftwo3-digitnumbers.所以我想我会在嵌套的for循环中从999循环到100并测试回文,然后在找到第一个(应该是最大的)时跳出循环:final=nilrang
我正在使用Rails创建一个新产品,并想为每个产品添加一个类别。我有三个表:产品、类别和分类(存储产品和类别之间的关系)。我正在尝试使用嵌套属性来管理分类的创建,但不确定应如何更新我的Controller和View/表单,以便新产品也更新分类表。这是我的模型:classProduct:categorizationshas_attached_file:photoaccepts_nested_attributes_for:categorizations,allow_destroy:trueattr_accessible:description,:name,:price,:photovali
我想知道其他人发现哪些是Rails应用程序的最佳图形库/插件/gem等。当我说最好的时候,我想我的意思是易于实现和自定义图表的能力。我以前使用过openflashchart2并喜欢它的整体外观/效果,尽管根据需要自定义所有内容有时会很痛苦。您是否有经验或建议可以为我指明更好的方向?非常感谢。 最佳答案 对于本地生成的简单图表,请查看Gruff.还值得一看的是各种GoogleChartsruby库,googlecharts成为一个。 关于ruby-on-rails-在RubyOnRai
我一直在为使用acts_as_list的模型实现一些不错的交互界面,这些界面可以对我的mRails应用程序中的列表进行排序。我有一个排序函数,在每次拖放之后使用sortable_elementscript.aculo.us函数调用并设置每条记录的位置。这是在拖放完成后处理排序的Controller操作示例:defsortparams[:documents].each_with_indexdo|id,index|Document.update_all(['position=?',index+1],['id=?',id])endend现在我正在尝试对嵌套集模型(acts_as_nested