与Ruby on Rails相比,Spring难吗?

joh*_*nny 27 java spring ruby-on-rails

如果我对其中任何一个都没什么经验,但是对Java和Ruby有足够的了解,那么一个框架比其他框架更难学习吗?对于初学者来说,这些更容易使用吗?

我知道很难回答.只是寻找一般的想法.

sal*_*sal 37

我不喜欢这种比较.

你应该比较Grails或Spring Roo和Rails.Groovy Grails是一个基于Spring的RoR系统,它使用Groovy来实现类似rails的DSL.对于像RoR这样的应用程序来说,Roo是一个含糊不清的纯粹java DSL.

我真的不想这样说,但Spring是一个平台.您可以使用它将Java技术连接在一起.您可以将它用于非Web,非数据库,零UI应用程序.您可以使用它来编写批处理服务器.您可以使用它来编写客户端.

Rails不一样.我真的很喜欢数据驱动的网络应用程序的rails,但是我想到在rails中编写批处理系统时感到很不舒服.


Eri*_*Red 18

在使用Rails之后,Spring(以及几乎任何其他Java编码)感觉乏味且耗时.

  • 直到你得到一个非常复杂的业务应用程序,需要数百个类,你无法弄清楚要传递给什么构造函数的类 (19认同)

kgi*_*kis 12

Spring和Ruby on Rails都共享"约定优于配置"的moto.这显着减少了代码行.Ruby on Rails是一个Web框架,它可以与Spring MVC以及像Hibernate这样的ORM工具进行比较.

可以说Spring与Spring MVC或其他MVC框架和Hibernate是最接近Java世界的Ruby on Rails.

但是,Spring的范围比RoR要广泛得多.

  • 通过注释配置仍然是配置 (19认同)
  • 您认为Spring的哪些方面可以使用约定优于配置?对于我熟悉的Spring版本,您必须编写大量的XML配置.更高版本允许您使用注释,但它仍然至少可以推断一些事情的配置. (9认同)
  • 在Spring 2.x + spring中介绍了MVC中的CoC,请参阅http://static.springsource.org/spring/docs/2.0.x/reference/mvc.html#mvc-coc.此外,使用注释可以显着减少所有其他Spring方面所需的XML配置. (5认同)
  • 对不起,这显然是一个非常古老的话题,但是当我听到因​​为大量的XML配置而导致Java很糟糕的时候我感到烦恼.您几乎可以使用IDE或生成器工具(Roo?)生成的默认配置,然后在实际代码中进行少量更改(抱怨注释几乎类似于抱怨必须写出您的模型继承自"ActiveRecord") .RoR人似乎喜欢隐藏所有默认配置,而我认为在Java世界中它更容易被接受,因为人们承认其他人可能需要它 (5认同)
  • 我正在使用Spring而我不能说它超出配置约定......至少与Grails(Spring的分支子,受RoR启发)相比较 (2认同)

Jet*_*Abe 12

我最近开始使用Spring MVC + WebFlow从4年开始使用ruby on rails.

Ruby是伟大的轨道是生产力egde.然而,Spring MVC更倾向于企业,其设计和模式层次超过模式.

我不是说它是垃圾,有趣的是学习一种不同的UI开发方法.

你无法比较这两者.Spring MVC更适合于可以在Portlet开发或Web流程开发中重用的设计,这些设计可以在不改变大量Java代码的情况下进行更改.

有弹簧安全的子框架,更不用说所有形状和种类的方面,我发现这一切都是一个很大的学习曲线.可以使用JSF或JSP/JSTL呈现视图.

老实说,我认为java是一种很久没有发展的语言,人们已经在这个堆栈上投入了大量资金,他们已经破解并覆盖了代码.注释和XML或者它是泛型,它们都旨在使语言迎合不断增长和不断发展的世界.

与红宝石这样的现代动态语言相比,存在很多生产力差异.Ruby是简单易用的程序员,在各方面都很出色.

Rails是一个非常自以为是的软件,由DHH和其他人认为和想要的软件决定.

是的,它非常适合Web应用程序开发,实际上当您开始编程rails时,您会感觉到已经获得了缺失的东西.

问题是多年来铁路公司已经收到了很多负面宣传.我现在不确定它的未来,并且在每个新的Web框架中克隆的东西之间进行选择是一种风险.

ASP.net mvc,grails cakePHP每个流行的MVC框架都有克隆的rails.

与铁轨相比,弹簧难吗?

我认为,如果你运用你的思想,两者在学习曲线方面是相同的.

  • 我总体上同意你的观点,但是你能给“企业”下一个定义吗?到底什么是企业?为什么 Spring(特别是)更适合企业? (2认同)

Ric*_*oll 10

将RoR与Spring直接比较并不是直接或简单的比较.

RoR非常注重轻松开发网站.RoR在制作页面,将它们链接在一起以及非常容易地保存数据方面做得很好.RoR在设计时明确考虑了Web开发,并且是一个很好的工具.也就是说,当你需要做更多的"企业"开发(消息传递,集成等),或者需要做一些不符合RoR约定的事情时,你会感到有些痛苦.

也就是说,Spring有许多方面:Spring IoC,Spring AOP,SpringMVC等,旨在解决开发人员面临的各种不同的开发问题.Spring拥有各种各样的技术,可以缓解您将面临的大多数开发挑战.

要直接回答您的问题,它直接取决于您的要求.如果您正在开发简单的数据库支持的Web应用程序,RoR将允许您快速轻松地开发应用程序,并且初学者可以更轻松地开始使用.另一方面,Spring具有更陡峭的学习曲线和更多必要的配置,但为您提供更多的灵活性和功能.

一旦我认为这种类型的讨论经常遗漏的方面是社区,工具和库的可用性.Java/Spring是一个成熟的平台,拥有广泛的社区和工具支持,而Ruby/RoR拥有一个很棒的社区,工具仍在追赶IMO.

  • 我没有看到任何证据表明Java/Spring比Rails提供了更多的"灵活性和强大功能".你还要强调Rails对于初学者来说更好,这意味着它在某种程度上对退伍军人来说更糟糕.仅仅因为某些东西在开始时很难或易于使用,这并不意味着它对于退伍军人来说分别是强大的或更糟的. (5认同)
  • 我没有真正从他的答案中挖掘"为初学者".然而,我在Java和RoR中都有所发展并且完全理解"灵活性和能力"评论...... RoR在性能和规定的设计模式方面的范围更为有限.这只是一个事实,几乎...... Rails是一种特定类型的前端应用程序框架,而Spring则不是. (2认同)

cle*_*tus 5

关于Spring的事情是它主要是两件事:

  1. 它本质上是现有技术和库的"适配器"或"外观"; 和
  2. 它与哲学上的不同之处在于,它完全是关于依赖注入或控制反转,这是一种与以前相比的根本不同的方法.

例如,对于(1),Spring可以执行诸如帮助减轻您使用的JMS提供程序的痛苦或执行诸如将由不同数据库生成的异常转换为Spring运行时DataAccessExceptions之类的操作.

出于这个原因,Spring通常被标记为轻量级容器.在Spring世界("应用程序上下文")中,供应商差异通常只是配置问题.依赖注入做了很多事情,比如使测试更容易(正确完成).

学习和使用Spring的最大挑战是学习如果你以前没有做过这样的事情就这么想.

除此之外,春天真的不是很多,这是一件好事.春天不妨碍你.您选择要使用的任何技术,Spring几乎总是只使用它们并更容易地集成它们.

一旦你进入DI/IoC的思维方式.