ruby生成java代码 ruby encode

Rails 开发与 Java 编程的比较年 月 日
Ruby on Rails 开发和 Java# ; 开发有着本质的不同 在跨越边界系列的最后一期中 Bruce Tate 将概述使用 Rails 从头开发一个复杂 可伸缩的 Web 站点时所发现的二者的主要差异
Rails 开发人员常常把 Java 开发人员看作是沉闷而劳碌的老古董 而 Java 崇拜者则常常认为 Ruby on Rails 只是一个玩具 根本不能用于任何严肃的软件开发 作为一名对这两种技术都有着广泛使用经验的顾问 我认为真实的情形介于这两种观点之间 由于跨越边界 系列文章即将结束 因此我打算对它们再作一次比较 本文并非考察某种特殊的技术或语言 而是主要介绍我当前正在从事的项目 并将它与我以前从事的 Java 项目进行比较 另外 我建议您阅读 跨越边界 系列的前几期文章 对相关主题作更深入的了解 这种直接的说明可让您在二者之间权衡利弊 并可能使您在数据库 Web 应用程序 green field 的开发中通过使用 Rails 获益
业务问题
关于本系列
在 跨越边界 系列文章中 作者 Bruce Tate 提出这样一种观点 当今的 Java 程序员们可以通过学习其他方法和语言更好地武装自己 自从 Java 技术明显成为所有开发项目最好的选择以来 编程前景已经发生了改变 其他框架影响着 Java 框架的构建方式 从其他语言学到的概念也可以影响 Java 编程 您编写的 Python(或 Ruby Smalltalk 等语言)代码可以改变编写 Java 代码的方式 本系列介绍与 Java 开发完全不同的编程概念和技术 但是这些概念和技术也可以直接应用于 Java 开发 在某些情况下 需要集成这些技术来利用它们 在其他情况下 可以直接应用概念 具体的工具并不重要 重要的是其他语言和框架可以影响 Java 社区中的开发人员 框架 甚至是基本方式
不论是 Ruby on Rails 框架还是任何 Java 框架都不能解决所有问题 为了提高成功的几率 需要长期 细致地考察业务问题 理解周围的各种假定情况 以及了解您的团队 只有这样才能选出正确的语言来进行开发
去年 Arvato Systems 聘请我带领团队构建 Ch 它是一种新平台 用于将非赢利性团体和捐赠人组织在一起 与很多 Internet 公司一样 我们向客户展示了可购买的实际产品 与其他公司不同的是 这些 产品 指的是提供机会 比如 一名癌症研究员一小时服务收费 美元 帮助盲人收费 美元 或者保护一英亩雨林一个月收费 美元 我们面临两大挑战 一份很紧凑的时间表和长期的复杂性
开发工作从九月份开始 要求必须在十一月份之前建立起一个站点 以便有机会赶上圣诞节期间的通信量高峰 (最终我们超出了十一月份这个期限两星期 )在其他开发语言中 基于 Java 的解决方案可能要花费 到 个月才能完成这一任务 因此生产力是一个很重要的考虑因素 这与 Java 部署思想相悖
通过对竞争对手和项目的考察 我们了解到 我们希望能够每天给站点带来几百万次点击的通信量 而我们需要每天有几十万次成功的点击 因此可伸缩性也是一个考虑因素 这与 Java 部署思想相符
最后 我们了解到 发布初始站点只是一个开始 我们只实现了总体规划的百分之三 因此我们所选的技术需要根据复杂性和负载作出一些调整 我认为 Ruby 语言在复杂性方面会更易于调整 因为它提供了对更高级语言和特性(如开放类)的支持 以及具有更少配置需求和更简单 集成化编程模型的 Rails 框架
虽然我们面临着时间和可伸缩性方面的挑战 但是也拥有一些其他的有利因素 我们拥有一张完全空白的候选名单 可以选择想要的任何技术 任何团队 可以定义项目 培训和全部的技术 我们可完全自由地作出选择
Java 语言是一种优秀的通用语言 它总是应用于新的技术领域 如嵌入式系统和移动设备 Java 语言在广泛关注的集成方面也表现优秀 它具有高性能 流行并受到平台的良好支持 但是正如您在本系列中所了解到的那样 Java 语言并不是用于数据库支持的 Web 应用程序的 green field 开发的最佳选择

推荐阅读