论坛首页 Ruby版 rails

初学RoR的疑惑

浏览 1827 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
最后更新时间:2007-02-16
刚开始看那本《Agile web development with rails》,想来此解开一些疑惑,以便使自己能更心无旁骛的投入学习。

1、开发效率:有人声称ror开发效率比J2EE高10倍(robbin比较保守的说有5倍),
只是不知道这里比较的是什么样的J2EE,是EJB2.x呢还是轻量级的Spring+Hibernate?
比后者还会有优势吗或者有那么大的优势吗?

2、适应变化/敏捷:快速响应变化、“每一种知识只在一处声明”(DRY),
这些都是敏捷的原则,不是ror所独有,
有经验的java程序员采用敏捷方法+轻量级框架技术+设计模式一样可以快速写出高质量的软件。

3、Convention over Configuration:现在大家越来越重视这个问题了,各种框架也都在精简自己的配置文件,所以我觉得rails的这个优势很快会消失。
况且如果不过渡使用的话,配置也有它的好处——灵活。
我本人不喜欢框架太聪明,我只希望他按照我的意图可靠的工作。

4、习惯了java的严谨,对ruby这种缺少类型检查的动态语言十分的不习惯,总有一种不安全感,这样写程序   嗯   真的能行吗?

5、选择:用了rails就意味着要割舍java世界里的一堆轮子,其中有我最喜欢的Spring和hibernate,
那么我不禁要问:Active Record能给我同样的帮助吗:自动生成/更新数据库模式、基本不需要与SQL打交道、以完全OO的方式操纵数据、数据库移植性;
还有声明性事务管理(本地和分布式),不知道rails有没有这个特性。
   
最后更新时间:2007-02-16
现在玩ROR玩high的继续玩high,做JAVA项目的回去做JAVA项目,框架圈子开始努力模仿ROR特性,潮流大牛们继续研究ROR新的REST,这一轮5倍10倍的讨论早折腾过了……
   
0 请登录后投票
最后更新时间:2007-02-16
1、开发效率肯定是和目前高效的Java框架对比的,否则有什么可比性?

2、rails内置了很强的测试功能,从单元测试、功能测试到集成测试,还有自动初始化测试数据的fixtures,对于web请求的测试能力也远远好于Java,可以模拟完整的用户交互,另外rails的assert_select对页面测试的能力也超强,不需要求助于selenium,总体来说rails程序的可测试性,测试的便捷性,是Java望尘莫及的,不在一个数量级上,所以从敏捷编程角度来说,如果有更好的编程工具,岂不是如虎添翼吗?

3、Java精简配置文件的方式是采用annotation,其实是换汤不换药的做法。Java对于配置信息之所以无法从根本上简化,在于Java语言不适合简练的表达配置信息,因此只能求助于XML或者annotation。这和rails的配置信息本身就是ruby语言相比,也不在一个等级上。换句话来说就是:由于编程语言内在差异,Java再简化也简化不到rails的程度。

4、这是Java程序员初学ruby的常见心理惯性,其实大家平常写那一陀陀的XXX.hbm.xml,applicationContext.xml, xwork.xml,可曾有过不安全感? 平常写那几百行几百行的JavaScript,HTML,CSS可曾有过不安全感?

我有个朋友是JS的顶尖高手,Java也很强,某个著名商业JS框架的作者,有次吃饭他就问了我这个问题,还没有等我回答,他自己就反驳了自己,说,我平时写那么多JS,也没有感觉不适应阿,呵呵。

5、我觉得rails做的更好,DB Migration可以自动生成更新数据库schema,并且跟踪数据库修改的版本,可以回滚前进到任一数据库schema版本。AR不回避SQL,事实上SQL就是AR的OQL,很自然。Transaction比较简单,是编程式的,但是够用了,分布式事务可以模拟出来。

我还有些话要对那些想学习rails的程序员说:

ruby语法有很多在Java程序员看起来比较怪异的地方,容易引起心理排斥感,需要一段时间的适应期。但是一旦熟悉并且灵活运用了ruby以后,会感觉很爽,写代码就像写文章,随心所欲。用rails对于程序员来说,特别是真正精通rails的程序员来说,能够感受到想像不到编程乐趣,这是Java提供不了的编程体验。而真正的ruby高手写出来的代码有很高的美感,给人以愉悦的享受。

所以,固然很多人是因为开发效率被rails所吸引,但是真正最大的收获恐怕还是体验了无与伦比的编程乐趣,至少我自己是刚刚开始体验到了,DHH专门有个topic讲了这个话题,可以参考potian的帖子:

http://www.javaeye.com/topic/20097
   
0 请登录后投票
最后更新时间:2007-02-17

daquan198163 写道:
刚开始看那本《Agile web development with rails》,想来此解开一些疑惑,以便使自己能更心无旁骛的投入学习。

1、开发效率:有人声称ror开发效率比J2EE高10倍(robbin比较保守的说有5倍),
只是不知道这里比较的是什么样的J2EE,是EJB2.x呢还是轻量级的Spring+Hibernate?
比后者还会有优势吗或者有那么大的优势吗?






我無法找出一個很精確的數字去佐證 Rails 的開發時間,要很精確的做出框架開發時間比較的 benchmark 跟本不可能
不過這裡有一篇我所整理的 Rails 跟 Java and PHP 程式碼行數比
相信某種程度可以代表 Ruby on Rails 跟 Java 開發速度的差別
   
0 请登录后投票
论坛首页 Ruby版 rails

跳转论坛:
JavaEye推荐