通过选择一种特定的后端技术,您可以在其中开发Web应用程序,这对于当今每个产品或企业所有者都面临着很大的挑战。 如果您做出了正确的选择,它将为您的业务增长和扩展提供具体的基础。 如果您选择了错误的技术,它可能还会给您的口袋造成很大的麻烦。
RoR是一个非常流行的后端Web框架,用于在Ruby编程语言中构建的Web应用程序开发。 作为成熟的Web框架,RoR提供了成功的Web项目的许多组件,例如开箱即用的ORM(对象关系映射)系统,用于业务数据和逻辑,路由和应用程序管理。 尽管如此,要确定RoR是否适合您的项目,您需要知道是什么使该框架与其他框架不同。 为了帮助您更深入地了解RoR,我们将概述其主要优势和局限性。
礼貌:网络 Ruby on Rails的优势?
那么,为什么要使用Ruby on Rails? 在进行市场研究时,Ruby一直在遵循最好的工具,更高质量的代码库以及更切合实际的软件方法。 相对于其他社区也可以看到的热情的方法,Ruby社区倾向于具有较高的工程师青睐工程师的优势。
工具 -Rails提供了出色的工具,可帮助您在更少的时间内交付更多功能。 它为Web应用程序提供了一种标准结构,其中所有常见的模式都将由您处理。
库 —有一个gem(第三方模块),可以处理几乎所有您想到的东西。 它们都是公开可用的,可以通过https://rubygems.org/进行 搜索。
代码质量 —通常,我们发现第三方Ruby代码的质量明显高于其同等的PHP或NodeJS。
测试自动化 — Ruby社区致力于测试和测试自动化。 我们认为,这对于帮助提供高质量的软件非常有价值,这也是Ruby库如此之大的原因之一。
大型社区 -世界上几乎每个主要城市都有一个Ruby社区,该社区定期举行聚会。 它是社交编码网站Github上最受欢迎的语言之一。
在硅谷流行 -历史表明,在硅谷流行的技术已逐渐在世界范围内采用。 如果您回顾一下近年来在Airbnb,Etsy,GitHub和Shopify等大型创业公司中取得的成功,它们都在Ruby on Rails上。
负责任的开发人员 -您倾向于发现Ruby开发人员在负责任的开发规则方面更加紧密地结合在一起。 如果您从小做起,沟通良好,处理垂直切面,在智能代码上编写简单代码,共享所有权等,您往往会发现您的项目最终会处于更好的状态。
生产力 — Ruby是一种雄辩而简洁的语言,将其与大量的第三方库结合使用时,可以使您快速地开发功能。 我会说这是最有生产力的编程语言。
下一代 -Ruby on Rails似乎是许多流行的在线代码学校的首选语言,例如Makers Academy,Ster和CodeCademy。 这意味着在未来几年中,加入Ruby社区的有才华的程序员将会增加。
礼貌:网络 Ruby on Rails的缺点?
因此很明显,Rails确实有其缺点,我将在本文中向您简要介绍。
运行时速度 —反对Ruby on Rails的最常被引用的论点是它“慢”。 与NodeJS或GoLang的运行速度相比,我们肯定会同意。 尽管实际上,Ruby应用程序的性能不可能成为企业的瓶颈。 在99%的情况下,瓶颈将在其他地方发生,例如工程团队,IO,数据库或服务器体系结构等。当您达到足够大的规模而不必担心Rails的运行速度时,您就可以可能会拥有一个非常成功的应用程序(想想Twitter的数量),并且会遇到许多扩展问题。
引导速度 -我们从Rails开发人员那里听到的主要挫败感是Rails框架的引导速度。 根据gem依赖项和文件的数量,启动可能会花费大量时间,这可能会影响开发人员的性能。 在最新版本的Rails中, Spring 的引入已在一定程度上解决了这一问题,但我们认为这样做可能会更快。
文档 -很难找到好的文档。 特别是对于不太受欢迎的宝石和大量使用mixins的库(这是Rails的大多数)。 您通常会最终发现测试套件充当文档,并且您将依靠它来了解行为。 这本身并不是一件坏事,因为测试套件应该是系统的最新表示形式,但是,有时有时编写文档会更快,不得不深入研究代码仍然令人沮丧。
多线程 — Rails支持多线程,尽管某些IO库不支持,因为它们保留了GIL(全局解释器锁)。 这意味着,如果您不小心,请求将在活动请求之后排队,并可能导致性能问题。 实际上,这并不是什么大问题,因为如果您使用依赖GLI的库,则可以切换到多进程设置。 连锁反应的结果是您的应用程序最终消耗了不必要的计算资源,这可能会增加基础架构成本。
活动记录 -AR在Ruby on Rails世界中大量使用,并且是许多Ruby Gems的硬性依赖。 尽管我们认为这是一种很好的设计模式,但我们看到的最大缺点是您的域与持久性机制紧密耦合。 这远非理想,可能导致错误的体系结构决策。
礼貌:网络 结论
最后,Ruby on Rails绝对是您可能在下一个项目中考虑的最好的后端Web开发框架之一。 因此,借助RoR,您可以显着执行与其他后端框架相同的操作。
优秀的社区,高质量的代码库,模块数据库的庞大规模以及RoR应用程序的可维护性使其成为Airbnb,GitHub,BaseCamp,Zendesk和Bloomberg等成功项目的首选。 然而,细节在于魔鬼。 如果您的项目有紧迫的期限和预算问题,RoR无疑是一个重要的选择。 另一方面,对于要求全面控制框架体系结构,模块,数据库集成和服务器部署的创新Web开发解决方案而言,诸如Node.js之类的观点不那么固执的框架可能是更好的选择。 如果您要构建I / O大量的实时应用程序,而这些应用程序的性能和可伸缩性是主要问题,则同样适用。 如果您想在Rails 上租用ruby,请 点击链接。
From: https://hackernoon.com/pros-cons-you-must-know-before-using-ruby-on-rails-for-your-startup-234ecd631aaf
请发表评论