InfoQ

新闻

用Groovy创建领域特定语言

作者 Craig Wickesser译者 宋玮 发布于 2008年2月27日 下午7时44分

社区
Java
主题
领域特定语言
标签
Groovy,
Grails

今天(2月21日)是Groovy/Grails Experience大会(也就是大家所熟知的2GX)的第一天,会议在Virginia的Reston举行。该会议会持续3天,包括了四十个90分钟的专题、小组讨论以及代码研习会。今天的首个专题之一是Venkat Subramaniam的“DSL In Groovy”。领域特定语言的话题过去曾经出现在InfoQ上,包括Martin Fowler的领域特定语言介绍和Ian Roughley的关于用JRuby构建领域特定语言的文章。

Venkat的专题提供了关于什么是DSL、它们的特征、DSL类型(内部/外部)以及Groovy用来创建和使用它们的特性等相关信息。Venkat首先集中于使用一些Groovy的一些内置特性创建内部DSL(internal DSL)

除了这三个特性外,Venkat论述了Groovy对开发者没有约束以及其促进DSL的附加特性,包括:

在决定当创建DSL时使用哪种方法时,Venkat解释了使用Categories或ExpandoMetaClass的主要区别,
  • Categories允许你在战术上增强一个类
  • ExpandMetaClass在本质上更深远、全面
  • 你可能不想从全局影响一个类
  • Categories提供了受控的灵活性

领域特定语言正持续受到关注,而且可以用Groovy内置特性创建和使用。

查看英文原文:Creating Domain Specific Languages with Groovy

2 条回复

回复

Groovy 发表人 mz peng 发表于 2008年3月2日 下午9时4分
groovy 发表人 feng xiao 发表于 2008年3月4日 下午7时12分
  1. 返回顶部

    Groovy

    2008年3月2日 下午9时4分 发表人 mz peng

    Groovy真的不错

  2. 返回顶部

    groovy

    2008年3月4日 下午7时12分 发表人 feng xiao

    我看了Grails 里面讲到了groovy 个人很喜欢他的语法

独家内容

剖析短迭代

敏捷教练Dave Nicolette提出:我们应该如何设定迭代长度?是要根据发布周期的时间么?使用短迭代又有哪些好处?

应用JSF、Ajax和Seam开发Portlets(1/3)

本文主要讲述了如何用JBoss Portlet Container 和JBoss Portlet Bridge创建新项目,怎样配置一个JSF应用去使用JBoss Portlet Bridge,以及JBoss Portlet Bridge所具备的功能。

AtomServer:数据分发的发布动力(第二部分)

在这篇文章里,Bryon Jacob和Chris Berry将和我们继续探讨AtomServer,它是基于Apache Abdera的完整Atom存储实现。作者还创建了几个Atompub规范扩展,其中包括自动标记、批处理和Feeds聚合。

架构师(试刊第二期)

InfoQ中文站的电子杂志《架构师》试刊第二期出版了!相比于上期,我们在内容的选择安排和版式上都根据读者的意见重新做了修正。“细节决定成败”,我们希望基于InfoQ中文站的专业内容,《架构师》能逐渐成为大家喜欢的电子刊物!

一种正规的性能调优方法:基于等待的调优

在本文中,Steven Haines探讨了Web应用性能调优问题。该领域过去更像是一门艺术而不是一门科学。他提出了一种称为基于等待调优的方法,使整个调优过程更加可度量,也因此更具科学性。

Java程序员ActionScript 3入门

通常来说,改变技术路线时最艰难的部分是辨别语言语法之间的不同。这篇文章就为Java开发者提供了一份如何转向Flex基础语言ActionScript的指南。

浅谈如何创建Rails应用

本视频主要以财帮子为例,介绍了如何创建一个PV为百万级的Rails应用。其中包括:Rails应用的服务器架构、Rails Cache的优化、负载均衡的处理、Web服务器的调试、分布式解决方案、Open API的设计等等。

Alexandru Popescu谈InfoQ.com网站架构

InfoQ首席架构师Alexandru Popescu在采访中谈论了InfoQ架构、Webwork与DWR、Hibernate与JCR、Hibernate可扩展性、最新的InfoQ视频流系统和InfoQ的未来规划。