发帖    主题    评论    推荐    标签    作者    订阅    查搜    注册   登陆   关注
 
面向对象 设计模式 领域驱动设计 企业架构 框架 开发教程 微服务 CQRS 扩展性 并发编程 事件溯源 分布式 SOA
1 2 3 4 ... 5 下一页 Go 5

RoR可否替代J2EE?

              
2006-12-14 21:32
赞助商链接

最近在一本杂志上看到,使用Ruby on Rails开发Web应用十分高效,不知是否有人知道RoR最擅长哪方面的应用开发?与J2EE的比较?能否替代J2EE? 请高人指点!我始终认为我们目前所用的开发模式(使用J2EE架构+MVC模式,但未用EJB)效率不太高,想换一种架构。

2006-12-16 19:58

Ruby on Rails是最新出现的Web开发方式。通过所谓的Rails框架,几个简单的命令,就可以生成一个缺省的数据表CRUD程序。但是Ruby on Rails在很多方面还是很不成熟的。至少在短期内,它还无法承担大型项目的开发。
在事务处理、分布式应用等高端和复杂的地方,J2EE还是最主流的选择,Microsoft.NET占据了剩下的部分。
Ruby是解释语言,这是它的优势,同时也是劣势。解释语言开发灵活,但是同时,在开发环境方面就差了。看看JavaScript吧,很多函数都要自己记。大家已经被Eclpse和VisualStudio这些产品养叼了,所以没有了一按“.”方法就弹出来、语法错误自动检查、自动重构这些功能,就感到相当麻烦。而且因为是解释执行,在执行效率上比较低,如果负载比较大的话,承受能力不如编译语言。
我估计你开发的多是中小项目吧?中小项目的业务逻辑很一般都很简单,表现层开发则占了决大多数时间。所以,你需要一个高速开发表现层的框架。
我给你三种选择:一是Microsoft的ASP.net。Microsoft的东西入门容易,表现层开发决大多数功能都可以通过拖拽实现。缺点是只能在Windows平台上实现。二是继续使用J2EE,但要选择一个新的表现层框架。1.JSF(JavaEE5官方标准),Sun为了和微软竞争,推出了Sun Java Creater2和最新的Netbeans5.5。它们都支持拖拽式开发JSF,缺点是资料比较少。2.Tapestry,相当不错的表现层框架,缺点是学习曲线太高,资料太少。3.Wicket,新出现的框架,用Swing的方式开发Web应用,学习曲线比较低,但目前资料太少,而且因为比较新,不够成熟,所以还无法承担大型项目开发。你可以发现,JavaEE在表现层的开发上,新的高效框架还是很多的。但都有一个致命的缺点,资料太少。可能是因为Struts统治的太久了吧。三就是你说的Ruby on Rails了。
具体如何选择,你可以自己比较。而且开发的时候,要根据客户的要求和你自己的情况综合考虑。

2006-12-18 16:16

同意楼上

如果有人说“RoR会替代J2EE”,过于武断,RoR为什么会兴起,是因为一个叫Martin Fowler的人看上了它,MF是什么人?是所谓OO流派大师,其实我认为他是一个建模专家(分析专家),而非软件架构专家。

更重要的是:未来不是语言之争,而是建模语言之争,RoR虽然是一个好的建模语言,也就是很快能够表达建模意思,但是其代码架构不如Java深入和宽广。

小的应用使用ROR可以,如果这个小系统将来可能扩展到大系统,那么就要Java,到时再过渡Java平台,手术就大了,所以软件架构的可伸缩性很重要,软件是有生命的,是不断成长的。

2006-12-18 16:42

关于RoR的快,这是一面之辞,如果牺牲相关设计质量,Java也能够达到相同的快速开发,例如Hibernate创始人开发的JBoss Seam,看看它的一个案例就可以。相关文章:

http://www.jdon.com/jive/article.jsp?forum=62&thread=27279

如果还觉得不算快,我设计的JdonFramework更快,分分钟开发一个小的应用,而且易于扩展。相关讨论:
http://www.jdon.com/jive/thread.jsp?forum=91&thread=26330

所以,不是说Java做不到快,我们更应该着重于软件设计思想的探讨。

ROR为什么受到MF推崇,实际它也是Evans DDD的实现,所以,使用Evans DDD这样领域驱动设计以后,可以让我们完全以对象方式建模 会话,表达需求,这才是根本。

关于RoR代表的动态语言(Groovy Python Ruby Smalltalk)与Java/.NET静态语言之争又是另外一个话题。

总结:ROR亮点无外乎体现下面三点:

1. 动态语言
2. Evans DDD
3. 简单的面向建模人员语言

以上三点中,后面两点需要深刻的OO思维才能发挥效率,现在很多人使用Java之所以效率不高,其实是没有形成纯正的OO思维,所以,用起OO工具不爽,同样也是RoR,所以,只有传统过程思维的人使用RoR,只能使用到RoR的动态语言特性,这个就和PHP相似了。

相关连接:
面向对象与领域建模

2006-12-19 16:43

最近正学习RoR,惊叹于其开发效率。不过笔者以为RoR与Java的应用领域大不相同,不存在什么替代之说。
Java最重要的特点,是其广阔的集成性。各种平台、各类技术、各种设备,都可与Java溶合。这对于IT世界长久以来产生的“信息孤岛”问题大有意义。可惜国内的J2EE一开始就走偏了,关注点一直聚焦于Web。老实说,单纯的Web层面,老掉牙的ASP就已经做得很好了,更不用说近来火爆的PHP。如果Java只需干那点Web层的活儿,只要坚持JSP模式1,效率足以胜过前二者,甚至包括RoR(Java类库的丰富与成熟、JavaBean良好的封装性)。
所以Java是一个历经多年发展与考验的集大成的平台,与MS的.NET平台相对应(MS的.NET是垄断性的平台,无法与Java平台的开放性相比)。RoR是一个新兴的Web开发框架,其位置是与PHP等火爆的动态Web开发相对应的。所以Java与Ror二者目前是不可等量齐观的。
如果RoR真的存在代替Java的可能性,除非Ruby在Java广泛应用的各领域全面超过Java,这种可能性现在看来不会很大。

5Go 1 2 3 4 ... 5 下一页

赞助商链接

赞助商链接

返回顶部

移动版 关于本站 使用帮助 联系管理员 最佳分辨率1366x768
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-20 jdon.com