写点什么

用 Groovy 创建领域特定语言

  • 2008-02-27
  • 本文字数:677 字

    阅读完需:约 2 分钟

今天(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

2008-02-27 19:441217
用户头像

发布了 150 篇内容, 共 47.3 次阅读, 收获喜欢 10 次。

关注

评论

发布
暂无评论
发现更多内容

第二周作业

Aldaron

课程总结

GAC·DU

如何构建低延时的直播体验,让互动更实时?

阿里云Edge Plus

CDN 短视频 直播 视频

使用WebMaker快速预览Ionic页面效果

davidce

Ionic WebMaker 混合应用开发

第二周总结

晨光

免费下载 | 阿里云实时计算整体解决方案白皮书重磅发布!

Apache Flink

大数据 flink 流计算 实时计算

Apache Flink 误用之痛

Apache Flink

大数据 flink 流计算 实时计算 数据处理

《实现领域驱动设计》拆书稿 DDD入门 & 领域、子域和限界上下文

三界

架构 领域驱动设计 DDD

极客大学架构师训练营 框架设计、设计原则、设计模式 第四课 听课总结

John(易筋)

极客时间 极客大学 极客大学架构师训练营 设计原则 框架设计

小师妹学JVM之:JDK14中JVM的性能优化

程序那些事

JVM 小师妹 JIT JDK14 签约计划第二季

架构师训练营 0 期第二周

Blink

20年行业变革与技术演进,当下CDN如何为政企数字化转型加速?

阿里云Edge Plus

CDN 边缘计算 移动视频

当你启动Redis的时候,Redis做了什么

老胡爱分享

redis 源码分析 面试

【大厂面试06期】谈一谈你对Redis持久化的理解?

NotFound9

数据库 redis 后端

从字符串到常量池,一文看懂String类设计

程序员DMZ

JVM 常量池 intern

依赖倒置原则

Jeannette

Flink作业问题分析和调优实践

Apache Flink

大数据 flink 流计算 实时计算

28岁程序员期权过亿,彪悍从字节退休,网友:酸了酸了!

程序员生活志

程序员 字节跳动 开发 退休

编程这件事

dapaul

看清远处模糊的事,不如做好身边清楚的事

Neco.W

创业心态 未知

第二周总结

qqq

极客大学架构师训练营

面向开发者的 WSL2 安装指南

simpleapples

Python Windows 10 wsl Go 语言

红警1游戏开源,代码非常规范。网友:秀色可餐

程序员生活志

开源 红警1

数仓系列 | 深入解读 Flink 资源管理机制

Apache Flink

大数据 flink 流计算 实时计算

软件开发简史

Jeannette

设计模式的主要原则

第二周 作业

尔东雨田

架构师训练营第二章 总结

尔东雨田

【Week02】框架设计

Aldaron

依赖倒置架构

GAC·DU

第二周作业

晨光

用Groovy创建领域特定语言_Java_Craig Wickesser_InfoQ精选文章