如果你刚加入 Rails 社区不久,你很可能会注意到社区所表现出来的爱恨交织的关系,即 Rails 与企业。有些人讨厌企业,并且公开表示去它的(49:39),另一方面,这些人也很自豪地提到该行业的一些主要组织使用 Ruby 和 Rails。
事实是,尽管 Ruby 和 Rails 还可以更加适合企业应用,但它已经是一个极好的组合,大公司今天就可以开始使用,而且许多公司已经在使用了!我们来看看 Rails 与企业的状态。
“企业的需求”有些难以界定,但是我可以证明所谓的“企业应用程序”的需求和要求与你为初创应用程序工作时遇到的需求和要求略有不同。
企业的需求/愿望
我认为事实已经证明,只要你知道你在做什么,那么 Rails 就可以扩展,并可以非常可靠。我们不再讨论刚刚实现并由酷孩子们把玩的新鲜框架,而应该将 Rails 视为已为部分最流行的网络应用程序所使用的稳定平台。
对于这一点,Rails 社区完全可以为此感到自豪。我们拥有许多论坛、博客、书籍、当地会议、会议... 是的,Rails 是开源的,你无法从核心团队购买年度支持,但是你将找到你需要的所有帮助。(如果你无法获得帮助,请联系我,我会帮你找到可以提供帮助的人员,如果你对 Rails 比较陌生,请访问 http://railsbridge.org/)
基于我的经验,我们的 Ruby 和 Rails 性能水平远超企业世界需要。由于 Ruby 1.9 极大提高了性能,Rails3 也优化了这一点,尤其如此。如果确实需要让部分代码像 C 代码一样快速运行,为 Ruby 编写一个 C 扩展实际上相当简单,并且能解决你的速度问题。
Rails 自带特定方法和惯例,让你在更短的时间内启动并运行。Ruby 作为一种语言自然、直观且易于维护。通过为你的项目选择合适的工具,你必定能在更短的时间内完成更多任务,并更快提高业务价值。别忘了社区中测试的高价值,它会推动你的团队编写经过测试的代码,并极有可能提高产品整体的代码质量。
这大概是你生活在企业环境并打算使用 Ruby 和 Rails 时面临的最具挑战性的部分。我最近与一位谷歌员工交谈,他在加入这家位于山景城的公司之前做了很多 Ruby 工作。我们谈到了他如何喜爱 Ruby,但在集成现有企业解决方案时遇到了很大困难。他提到,糟糕的 XML 工具、差劲/复杂的 SOAP 库等因素让他感到沮丧,还有一些我记不起来的问题。事实上,在我朋友使用 Ruby 的时候,上述内容都是真的。REXML 和 Soap4r 很实用,但可能表现不佳。幸运的是,随着社区发展,新的工具不断涌现,如今 Nokogiri(由 AT&T 工程师 Aaron Patterson 开发和维护)可以轻松取代 REXML,已知许多库比 Soap4r 更好,例如 savon、handsoap 等。另一个好消息是,诸如 Apple、Microsoft 和 Sun(RIP) 等主要 IT 公司已采用 Ruby,你现可以用 Ruby 编写代码,并使用其他语言的本地库,如 Java、.NET 或 Objective-C。不必完全重写就可以顺利完成过渡路径。
就数据库而言,由于有了 Oracle ActiveRecord 适配器(来自 R.Simanovskis),Oracle 仍然是 Rails 开发人员可行的选择。注意,DBA 可能会因为你不使用绑定变量和所有 Oracle 魔法咒语而优化查询而诅咒你,在这种情况下,你可以使用 Sequel,它是支持 Oracle 和一些其独特功能的出色 ORM。
在部署方面,您可以部署在 IIS、Tomcat、Glassfish、Apache、Nginx 或您已在使用的几乎任何主流应用程序上。使用 Passenger,部署就像部署 PHP 应用程序一样容易而且您还获得了一系列出色的工具,例如 Capistrano、Vlad 等...
因此,从根本上来说,这多亏了为“老板”工作的充满激情的 Ruby 用户,例如 Aaron Patterson、Raimonds Simanovskis 等,在企业中使用 Ruby 变得更加容易。Ruby 和 Rails 最初并非针对企业而设计,但随着时间的推移,集成变得更加顺畅,双方现在都可以享受互惠互利的好处。