写点什么

用 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:441587
用户头像

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

关注

评论

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

第三空间娱乐体验重构:AITO 问界 M5雕刻的七宝楼台

脑极体

北京大学董豪老师解密人工智能开发工具的过去与未来

OpenI启智社区

人工智能 开发工具 启智社区 北京大学

好评不断的文化纪录片《中国》,背后的“剪刀手”竟是它?

百度大脑

程序员的工作就只有写代码么?

程序员鱼皮

经验

SpringBoot接入轻量级分布式日志框架(GrayLog)

Java工程师

程序员 分布式 Web spring-boot

低版本skywalking与LinkAgent不兼容怎么办?记一次详细的解决过程

TakinTalks稳定性社区

达观数据CTO 纪达麒:基于阿里云计算底座,打造智能办公机器人

阿里云弹性计算

机器人 神龙架构 智能办公

如何用建木CI实现前端代码自动格式化

Jianmu

前端 代码管理 格式化 prettier 建木CI

Apache DolphinScheduler&ShenYu(Incubating)联合 Meetup,暖春 3 月与你相约!

白鲸开源

大数据 开源 工作流调度 Apache DolphinScheduler

2022最新IntellJ IDEA的mall开发部署文档

北极的大企鹅

开源 部署与维护 开发者, MAll

失败案例之安全抓包测试

网络安全学海

网络安全 信息安全 渗透测试 安全漏洞 网络抓包

Redis Pipeline原来是这么用的

Java工程师

数据库 程序员 代码 pipeline redis'

Linux之alias命令

入门小站

Linux

2022年中国可穿戴医疗设备发展洞察

易观分析

可穿戴医疗设备

被动防御→积极防御,系统稳定性保障思路启发

TakinTalks稳定性社区

Hoo虎符研究院 ∣ 投资前沿——STARKNET 生态一览 (2022.3.18)

区块链前沿News

虎符研究院

网易会议开源之桌面端篇

网易云信

开源

微博评论高性能高可用计算架构设计

Geek_36cc7c

网易数帆Curve加入PolarDB开源数据库社区

阿里云数据库开源

数据库 阿里云 开源数据库 polarDB

JVM自定义类加载器在代码扩展性的实践

Java工程师

JVM 代码 类加载器 实践 #java

重新刷新你对Redis集群的理解

Java工程师

数据库 复制 数据共享 集群 redis'

Flutter 开发一个常用的登录界面

岛上码农

ios 移动端开发 3月月更 flutter开发 安卓开发

国际自主智能机器人大赛强势来袭,NAACL同声传译任务等你来战

百度大脑

Linux运维技术之Linux云计算架构

学神来啦

Linux 架构 运维 linux云计算

Docker 配置国内加速镜像

信号量

Docker Linxu

Apache DolphinScheduler&ShenYu(Incubating)联合 Meetup,暖春 3 月与你相约!

大数据 开源 工作流调度 Apache DolphinScheduler

Flash退出历史舞台后,Web端3D会迎来怎样的发展?

Orillusion

WebGL 3D渲染 3D模型 Flash webgpu

区块链正在塑造医疗保健生态系统!

CECBC

Rust的迭代器

Shine

rust 迭代器

毕业总结

Geek_93ffb0

「架构实战营」

调查:区块链游戏玩家将玩NFT游戏视为一份潜在的全职工作

CECBC

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