采用Groovy和Grails吗?现在就做
作者:Content Team
4-29,2009
Rob James是Aegeon公司的CTO,是最早的一批在真实的软件世界采用Groovy和Grails的人。在这篇和IndicThreads的访谈中,他告诉我们,为什么Aegeon公司采用Groovy和Grails来组建他们的企业级web2和社交网络产品:Spaceo.us;他谈到了把web2和社交媒体集成进企业软件的挑战;他也和我们分享了什么时候该考虑使用新生的技术、怎样采用它们。
Harshad Oak >>你好,Rob!欢迎来到IndicThreads。您能给我们的读者介绍一下您自己吗?
Rob James >>没问题。我的名字叫Rob James,到现在,我已经做了二十多年的技术了。在最近的十年,我的主要工作被卷入了web革命的浪潮中,这其中包括产品开发、咨询服务和项目外包。我拥有工程背景,但是很多年来都为用户界面和可用性做了大量的工作,而最近又投入了大量的精力到基于Web & Enterprise 2.0的社交平台的工作中去。我也对商务端的技术特别感兴趣,并且投入到了几个启动的项目中去。现在,我是Aegeon公司的CTO,在为开发Spaceo.us而工作。
Harshad Oak >>你能够详细谈谈Spaceo.us吗?
Rob James >>Spaceo.us是我们为用户真实开发的系列产品中的一个。产品拥有第二代的目录结构,在一个传统的目录下提供和web2.0应用相似的特性(例如标签、注释和投票)。我们很快就意识到我们在建的目录是一个能够被用作一些其他类型信息的目录,不久,产品被开发成一种新型的Portal。现在,产品需要一个下一代的Portal和知识管理平台,并且拥有mashup(聚合)能力。
Harshad Oak >>Spaceo.us给我们展示了一个将社交网络引入到企业级产品中来的例子,您是如何做到的?
Rob James >>就像前面提到的那样,它是一个革命性的产品。但是在它的早期迭代开发过程中,它基本上是一个基于目录的wiki(想象一下一个拥有让任何人编辑内容能力的传统黄页目录)。我们按照这个样子开始了原型设计,但是我们也希望我们的开发能够尽量是轻量级的、并且拥有尽可能大的鲁棒性。我们有一个小组来对这些概念进行原型设计,当我们把这些完成以后,我们希望有一些健壮的发布工具、同时也能增加一些额外的特性。使用Grails和敏捷方法技术,我们能够快速的迭代开发和测试应用的新的特性。这个过程花了九个月的时间直到我们找到能够为我们的客户实现多样性的需求的舞台。
"使用Grails和敏捷方法技术,我们能够快速的迭代开发和测试应用的新的特性..."
Harshad Oak >>在你们开发Spaceo.us的时候,你们遇到了什么样的技术挑战?
Rob James >>更多的挑战是文化上的而不是技术上的。因为绝大多数的组织没有意识到在他们的防火墙内部引入社交网络的成熟度或复杂性。最主要的技术挑战是我们希望Spaceo.us能够集成很多已经存在的商业应用,这意味着我们需要使用SOA方法到我们的API中来,因为我们希望使得这些足够简单。围绕Spaceo.us架构的一切都是轻量级的,这使得它越来越复杂。但是最大的问题是它没有真正易于实践过,什么时候和用户一起做一个实现永远是一个问题。但是,我们没有遇到一个不能解决的问题。
"最主要的技术挑战是集成很多已经存在的商业应用..."
Harshad Oak >>你已经在Spaceo.us中使用了一些新的技术,是否因为你感到传统的技术有它的局限性?
Rob James >>既然这是"绿地"项目,我们从痛苦开始,我们就意识到使用我们喜欢的技术是不可能的了。我想,通过使用新技术,我们有了影响新的革命和技术的优势。这是一个巨大的成绩。它允许我们更快的开发和需求变更,引入这些技术所允许的新特性。我们都知道,使用更多的传统技术有可靠性高的优点,但是今天的市场,最重要的是变革。这和生产一级方程式赛车是使用传统的钢铁和合金一样。使用最新的碳纤维、合成纤维和陶瓷技术的小组更可能的造出一辆更好的车。从我自己和我们小组的角度来看,这是非常有趣和精彩的--在工作中使用新技术和语言--学习一些新东西永远是好的。
"这像是使用传统的钢铁和合金还是碳纤维生产F1赛车一样..."
Harshad Oak >>到底是这些新技术有哪些特别的特性,使得你们把他们使用到了我们的产品中?你和你的团队是如何决定采用一个新的编程语言像Groovy的?
Rob James >>有很多"货真价实"的好处来自那些特性,如果我们使用传统的技术的话,那么我们将需要做大量的工作来产生这些特性。这些事情像RSS提供和领域建模。通过使用像Groovy这样的语言和像Grails这样的平台,这些事情变得非常容易做,这意味着我们能够把重心放在更加重要的事情上。但是我认为最大的好处在于实际工作中,我们能够花更多有用的时间在构建真实的应用上,而不是在校验代码上,这是一个非常棒的感觉。使用Groovy,最大的问题是,在很多案例上,团队转化得太慢,他们仍然创建类和使用和Java开发一样的方法,然而,随着时间的推移,他们变得更加适应了,他们能够引入更多的Groovy概念和语言规范。这也是一个优势当时我们在选择Groovy而不是其他的语言像Ruby。
"使用Groovy&Grails,我们能够花更多有用的时间在构建真实的应用上,而不是在校验代码上..."
"我们可以以我们自己的方式完成从Java到Groovy的迁移..."
Harshad Oak >>兜售像Groovy和Grails这样的相关的新技术有多艰难?您的团队和客户的反应是什么?
Rob James >>让整个团队通过,这的确是有一点挑战。虽然他们中的绝大多数人拥有丰富的Java经验,使得他们理解使用Groovy/Grails的好处仍然是一个挑战。主要的问题是因为不确定性,事实上,在我们刚刚开始这个项目的时候,作为一个平台,Grails仍然处在它的早期阶段。我们感觉到,客户不能真正影响我们的语言选择,仅有的一次这成为一个问题是当客户希望我们做一些集成工作到我们的平台上来。但是即使我们使用Groovy 和Grails,对于他们来说,他们也是熟悉这些封面的,因为这些技术像Hibernate和Spring,所以这从来不是问题。
"有Hibernate&Spring在封面下,和我们的Groovy&Grails平台集成不是一个问题..."
Harshad Oak >>很多我们的读者来看这个访谈,是因为他们在寻找采用Groovy和Grails的案例学习。对于那些正在考虑在他们的下一个产品或项目中采用Groovy和Grails的人,您有什么建议?
Rob James >>很简单--干吧!我们发现有一些障碍,我们一开始就必须克服,但是我们得到的好处会远远超过它们的。我们能够使得开发和需求变更变得更加容易,而且团队适应起来也很快。你仍然需要确定您的计划、设计和架构都做对了,但是它的确使得你能够花更少的时间来编写测试代码,可以有更多的时间来写功能性的代码,能够增加需求到你的应用中去。
"使用Groovy&Grails,我们发现有一些障碍,我们一开始就必须克服,但是我们得到的好处会远远超过它们的..."
Harshad Oak >>您是否认为开发者会混合和分别使用Groovy-Grails和传统的JavaEE技术?
Rob James >>是的,实际上,我们也是这样在我们的产品中使用的。并且这样做很简单。既然Grails的封面之下是Spring,那么这就非常容易写Java到系统中来。当然,有很多方式来做这件事情,但是我们不想通过使用一些潜在的架构使得这两者变得泾渭分明,我们需要使用一些EJBs直接集成到产品中来,然后我们非常容易的做了这件事情。Grails框架也允许你十分优雅的做这件事,使得你能够管理你的发布。
"十分容易混合和分别使用Groovy-Grails和传统的JavaEE技术..."
Harshad Oak >>作为一个真实世界的Grails用户,哪些特性是你所感觉到的Grails所缺乏的,并且你希望在未来的版本能够看到这些特性?
Rob James >>我认为在最近的几次(更新),Grails成长了很多,特别是1.1版的发布。除此之外,我想测试是一个需要改进的领域,但是现在也好多了。作为一个用户界面的开发者,我认为这个方面需要提高。虽然它比其他的平台好得太多了,但是多Javascipt库和插件带来的复杂性,都给浏览器带来的大量的脏的HTML渲染。这能够做的更好一些。最后,我想一个特别需要提高的领域是工具。到现在为止,最好的IDE是IntelliJ,但是仅仅只有一些工作开始往NetBeans和Eclipse上做,而它们需要开发Grails和Groovy应用的能力,我希望有更多的努力放在它们上面。
"Grails的工具需要提高..."
Harshad Oak >>谢谢Rob接受访问。希望Spaceo.us成功。
Rob James >>这是我的荣幸,谢谢您给这个机会。
相关Blog:
- 1. Groovy - Grails Discussion at Java Meet The Groovy language and the Grails framework have slowly but surely grown in prominence. Grails...
- 2. SpringSource Acquires Groovy and Grails company (G2One) SpringSource, the company behind Spring, has acquired G2One Inc., the company behind the popular Groovy...
- 3. Groovy and Grails Tutorial Groovy and Grails have been picking up steam over the past year. Groovy claims to...
原文网址:http://www.indicthreads.com/4082/thinking-of-adopting-groovy-and-grails-do-it-now/