NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

Rails 从互联网走向企业

  • 2007-04-22
  • 本文字数:1116 字

    阅读完需:约 4 分钟

在过去的两年里,已经有太多的讨论围绕着“用 Rails 要快多少多少倍”展开。但是,对于复杂的企业级应用来说,开发的效率只是一方面。至少还有其他几个方面是必须关注的。

  1. 非功能性需求,也就是软件的 -ilities:性能,并发吞吐量,伸缩性,安全,等等。
  2. 完整的生命周期支持:需求,设计,开发,配置管理,质量保证,部署,维护,升级。软件生命周期的各个环节是否有适当的工具和 / 或最佳实践来覆盖。
  3. 系统整合。与遗留系统是否能够协同工作。这主要体现在两个方面:(1)消息系统;(2)遗留数据库。

实际上动态语言早已在各种企业 IT 系统中扮演胶水的角色,一些成熟的组织早已认识到它们并不止是急就章拼凑软件的法宝。动态语言本身的特点使得它们能够相当漂亮地描述各种领域,这正是为何 Rails 只会在 Ruby 上出现的原因。来自 InfoWorld 的文章这样写道:

值得注意的是,PHP、Perl、Python 和 Ruby 等动态语言在企业中扮演着越来越重要的角色。IT 管理者们很快地意识到:比起传统的、较为低级的企业主流开发语言,使用这些动态语言能够更快、更轻松地写出易于维护的好代码。

另一篇 InfoQ 的文章在介绍 ChangingThePresent.org 的案例时这样写道:

有人说 Rails 对复杂解决方案的扩展支持能力不够,我不赞成这种说法。和同类技术相比,Rails 的生产力是最高的。Rails 对我们的开发过程、团队组建和管理都产生了戏剧性的影响。所用技术的生产力越低,迭代周期就越长;团队越大,花在检查和协调上的时间就越多——在 Ruby 和 Java 项目管理我都经历过后,更为支持这个观点。使用别的技术,就需要组建更大的团队(比如 10 到 15 人),而我们则可以保持团队最小化。

至于前面提到的、企业级应用环境所看重的三个方面。结合 Apache Mongrel HAProxy 的部署方案已经被证明具有轻松超过任何 J2EE 应用服务器的性能和吞吐量,无共享架构使其具有完全线性的水平伸缩能力;至于安全性,Unix 本身就已经构造了完备而可靠的安全体系。在今年的 RailsConf 上,我们将看到关于“如何部署高性能企业级 Rails 应用环境”的产品和最佳实践。

在生命周期方面,我们已经有了 CruiseControl.rb Capistrano ;我们即将看到 Mingle 的正式亮相,以及基于这些工具的最佳实践。系统整合或许是目前最不明朗的一个领域:我们有 ActiveMessaging ,我们有复合主键支持,但是很明显这离着“方便的遗留系统整合”还有相当距离。在未来的一年中,这可能是“企业级 Rails ”最有看头的一个领域。

总而言之,不难看到,即便是对于企业级超复杂的要求,Ruby 和 Rails 也已经做好了——至少是大部分的——准备。Rails 已经像 J2EE 那样成熟了吗?不,远远没有。但对于那些愿意承担一定风险来提升 IT 效率的企业而言,是的,Ruby 和 Rails 整装待发。

2007-04-22 19:35764
用户头像

发布了 21 篇内容, 共 29200 次阅读, 收获喜欢 2 次。

关注

评论

发布
暂无评论
发现更多内容

2021 挚物·AIoT产业领袖峰会召开,EMQ 映云科技喜获双料荣誉

EMQ映云科技

百度 华为 工业互联网 AIOT 边云协同

生产上数据库死锁,是该程序员祭天了

skow

Java MySQL 面试

钻石01:明心见性-如何由表及里精通线程池设计与原理

MetaThoughts

Java 多线程 并发

灵活运用分布式锁解决数据重复插入问题

vivo互联网技术

分布式锁 服务器 并发

关于线程的执行顺序,可能真的只是你以为的你以为

华为云开发者联盟

Java 线程 多线程 Thread 任务调度

爱情,婚姻,与AI

脑极体

《MySQL是怎样运行的》读后思考

MySQL

CRUD搬砖两三年了,怎么阅读Spring源码?

小傅哥

Java spring 小傅哥 源码学习 框架学习

云图说|ROMA演进史:一个ROMA与应用之间不得不说的故事

华为云开发者联盟

华为云 应用 ROMA 云图说 应用使能

队列Queue:任务间的消息读写,安排起来~

华为云开发者联盟

鸿蒙 数据结构 队列 Queue 消息

英特尔陈伟:AIoT时代的新思维

E科讯

Redis 帝国的神秘使者,竟然想改造 C 语言!

悟空聊架构

redis 架构 悟空聊架构 7月日更 用故事讲技术

Go语言:SliceHeader,slice 如何高效处理数据?

微客鸟窝

Go 语言

架构之:REST和HATEOAS

程序那些事

架构 系统架构 Rest 软件架构

filecoin云算力系统开发案例解析

获客I3O6O643Z97

挖矿矿池系统开发案例 fil币 fil矿机和云算力

聊聊数据仓库建设

水滴

数据仓库 数仓 数仓架构 主数据管理 标签体系

微软亚研院:如何看待计算机视觉未来的走向?

百度开发者中心

最佳实践 方法论 计算机视觉 语言 & 开发 文化 & 方法

Axie区块链宠物游戏系统开发搭建

薇電13242772558

区块链

架构实战营模块三作业

maybe

教你如何将二进制文件导入到数据库

华为云开发者联盟

数据库 数据 二进制 GaussDB(DWS) 二进制文件

数据,流通在没有船的港口

白洞计划

Optional 的使用会导致性能下降吗

小技术君

性能优化 Optional

基于Jena的知识推理

华为云开发者联盟

推理 知识推理 Jena 推理引擎 RDF图

爬虫入门到放弃04:爬虫=犯罪?对不起,我对钱没有兴趣

叫我阿柒啊

爬虫 robots.txt

《全国移动App第二季度安全研究报告》

InfoQ_11eaedef67e9

网络安全 移动安全 个人信息安全 APP安全

三十岁,像培养孩子一样培养自己。

南冥

如何包容他人的多样性

escray

学习 极客时间 朱赟的技术管理课 7月日更

异常是怎么被处理的?这题的答案不在源码里面。

why技术

面试 JVM 字节码

应聘高级Android工程师历程感言,你不懂还不学?

欢喜学安卓

android 程序员 面试 移动开发

当女性撰写科技新闻,她在报道什么?

脑极体

Python开发篇——构建虚拟Python开发环境(Conda+Poetry)

DisonTangor

Python Anaconda

Rails从互联网走向企业_Ruby_Jeff Xiong_InfoQ精选文章