动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Java教程 ]的信息



本月文章推荐
.servlet会话介绍.
.分享Swing学习的一些经验.
.JDK1.4和JDK1.5在linux下的中文显.
.剖析.Net下的数据访问层技术(5).
.用JavaBean实现文件上载(二)上载.
.利用Java实现Web服务器.
.4类Java技术平行发展Sun公司计划.
.Hibernate实践JBX+MY SQL4.0.
.Java智能卡基础篇.
.更改osworkflow让其支持hibernat.
.Mark Spritzler的SCJD学习指导.
.JSF中使用自定义Navigation.
.JAVA中的日期时间操作.
.使用私有构造函数来强化单态性.
.javazip_0.8alpha二进制发布版(W.
.PowerFolder 工作流服务器版本0..
.WebWork中使用动态Form字段.
.生成jar文件的方法.
.捕获所有违例.
.在运行时刻从文件中调入Class.

Rails 开发与 Java 编程的比较

发表日期:2008-1-5 |


2007 年 4 月 24 日

    Ruby on Rails 开发和 Java™ 开发有着本质的不同。在跨越边界 系列的最后一期中,Bruce Tate 将概述使用 Rails 从头开发一个复杂、可伸缩的 Web 站点时所发现的二者的主要差异。

     Rails 开发人员经常把 Java 开发人员看作是沉闷而劳碌的老古董。而 Java 崇拜者则经常认为 Ruby on Rails 只是一个玩具,根本不能用于任何严厉的软件开发。作为一名对这两种技术都有着广泛使用经验的顾问,我认为真实的情形介于这两种观点之间。由于跨越边界 系列文章即将结束,因此我打算对它们再作一次比较。本文并非考察某种非凡的技术或语言,而是主要介绍我当前正在从事的项目,并将它与我以前从事的 Java 项目进行比较。另外,我建议您阅读“跨越边界”系列的前几期文章,对相关主题作更深入的了解。这种直接的说明可让您在二者之间权衡利弊,并可能使您在数据库 Web 应用程序 green-field 的开发中通过使用 Rails 获益。

业务问题

Rails 开发与 Java 编程的比较 关于本系列

在 跨越边界 系列文章中,作者 Bruce Tate 提出这样一种观点,当今的 Java 程序员们可以通过学习其他方法和语言更好地武装自己。自从 Java 技术明显成为所有开发项目最好的选择以来,编程前景已经发生了改变。其他框架影响着 Java 框架的构建方式,从其他语言学到的概念也可以影响 Java 编程。您编写的 Python(或 Ruby、Smalltalk 等语言)代码可以改变编写 Java 代码的方式。 本系列介绍与 Java 开发完全不同的编程概念和技术,但是这些概念和技术也可以直接应用于 Java 开发。在某些情况下,需要集成这些技术来利用它们。在其他情况下,可以直接应用概念。具体的工具并不重要,重要的是其他语言和框架可以影响 Java 社区中的开发人员、框架,甚至是基本方式。

    不论是 Ruby on Rails 框架还是任何 Java 框架都不能解决所有问题。为了提高成功的几率,需要长期、细致地考察业务问题,理解四周的各种假定情况,以及了解您的团队。只有这样才能选出正确的语言来进行开发。

    去年,Arvato Systems 聘请我带领团队构建 ChangingThePresent.org,它是一种新平台,用于将非赢利性团体和捐赠人组织在一起。与很多 Internet 公司一样,我们向客户展示了可购买的实际产品。与其他公司不同的是,这些 “产品” 指的是提供机会,比如:一名癌症研究员一小时服务收费 50 美元、帮助盲人收费 30 美元,或者保护一英亩雨林一个月收费 20 美元。我们面临两大挑战:一份很紧凑的时间表和长期的复杂性。

    开发工作从九月份开始,要求必须在十一月份之前建立起一个站点,以便有机会赶上圣诞节期间的通信量高峰。(最终我们超出了十一月份这个期限两星期。)在其他开发语言中,基于 Java 的解决方案可能要花费 6 到 18 个月才能完成这一任务。因此生产力是一个很重要的考虑因素,这与 Java 部署思想相悖。

    通过对竞争对手和项目的考察,我们了解到:我们希望能够天天给站点带来几百万次点击的通信量。而我们需要天天有几十万次成功的点击,因此可伸缩性也是一个考虑因素。这与 Java 部署思想相符。

    最后,我们了解到:发布初始站点只是一个开始。我们只实现了总体规划的百分之三。因此我们所选的技术需要根据复杂性和负载作出一些调整。我认为 Ruby 语言在复杂性方面会更易于调整,因为它提供了对更高级语言和特性(如开放类)的支持,以及具有更少配置需求和更简单、集成化编程模型的 Rails 框架。

    虽然我们面临着时间和可伸缩性方面的挑战,但是也拥有一些其他的有利因素。我们拥有一张完全空白的候选名单:可以选择想要的任何技术、任何团队。可以定义项目、培训和全部的技术。我们可完全自由地作出选择。

    Java 语言是一种优秀的通用语言。它总是应用于新的技术领域,如嵌入式系统和移动设备。Java 语言在广泛关注的集成方面也表现优秀。它具有高性能、流行并受到平台的良好支持。但是正如您在本系列中所了解到的那样,Java 语言并不是用于数据库支持的 Web 应用程序的 green-field 开发的最佳选择。

    相比之下,Ruby on Rails 框架则是新的。并没有很多人使用 Rails 开发高通信流量的站点,并且几乎不存在什么使用 Rails 多年开发项目的经验。但它仍然是一种高生产力的数据库支持的 Web 应用程序开发的框架。最后,尽管我们对 Rails 缺乏开发长期项目的经验和并未得到广泛部署有所顾虑,但那份紧凑的时间表驱使我们选择了 Ruby on Rails。

    作出这个决定之后,我们发现招募项目人才非常轻易。我们还发现早期的生产力优势非常显著 —— 甚至比预期的还要好。我们确实碰到了一些早期的稳定性问题,因此加强了测试工作的力度。此后稳定性得到了极大的改进。

原理

    每个框架设计者都使用一组假定来构造该框架的重写原理。学习遵守该原理的约束可使您愉快地进行编程,而挑战这些约束则会使您的编程受挫。Rails 框架和 Java 框架拥有很多不同的原理。


上一篇:关于数组和List之间相互转换的方法 人气:1069
下一篇:JDK6的新特性:脚本语言支持(Scripting) 人气:414
浏览全部Java的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-7-24 Sablog-X v2.0 预览版
2008-7-24 帝国备份王EmpireBak 2008 正式版
2008-7-24 网趣网上购物系统时尚版 v8.2
2008-7-24 纵横B2B电子商务系统XYECS!B2B v
2008-7-24 e路小说小偷 v1.2.0723
2008-7-24 凌风美女图片站程序 v2.2
2008-7-24 TOM15电影收索程序
2008-7-24 清风信息自动采集生成系统 v1.0
2008-7-24 QQ邮箱编辑器 v1.0 (小小菜刀ASP
2008-7-19 UltraEdit 简体中文增强版 14.10
2008-7-19 CentOS 5.2 i386 LiveCD
2008-7-19 Snapture多功能相机 v1.4
2008-7-19 iAcces中文输入法 v1.0Build016
2008-7-19 Cookbook烹饪秘籍 v2.5
2008-7-19 苹果专用DVD转换工具 v1.1.59汉化
2008-7-19 Modem修复软件ZiPhone修改版04.0
2008-7-19 AgileMessenger即时通讯工具美化
2008-7-19 Sketches画图软件 v0.7b6破解版


  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号