50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

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

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

关注

评论

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

叮~点击定制你的数字车手证,参与挑战吉尼斯世界纪录™ 称号

亚马逊云科技 (Amazon Web Services)

Amaozn DeepRacer

阿里云张新涛:支持沉浸式体验应用快速落地,阿里云云XR平台发布

阿里云弹性计算

视觉计算 云XR平台 沉浸式体验 GPU实例

毕昇编译器优化:Lazy Code Motion

华为云开发者联盟

云计算 后端 表达式 毕昇编译器

Linux进阶删除用户组

flow

8月月更

不是吧,连公司里的卷王写代码都复制粘贴,这合理?

Liam

前端 代码 手写代码 代码阅读 写好代码

视频是主动学习吗?

FunTester

体验远超Hue,这才是技术人员最喜欢的SQL工具

雨果

sql hue DaaS数据即服务

传统数据中台又贵又复杂?何不试一试永久免费的下一代数据中台

雨果

数据中台 DaaS数据即服务

分贝通SAAS企业大数据体系建设经验分享

阿里云大数据AI技术

大数据

Linux进阶切换用户

flow

8月月更

Linux进阶新增用户组

flow

8月月更

MySQL数据指令

武师叔

8月月更

艺术与科技的狂欢,云端XR支撑阿那亚2022砂之盒沉浸艺术季

阿里云弹性计算

vr 视觉计算 云XR平台 沉浸式体验 GPU实例

进行知识管理的好处有哪些?

Geek_da0866

对数学直观、感性的认知是理解数学、喜爱数学的必经之路,这本书做到了!

图灵教育

高中数学

说了半天跨平台,今儿咱就来跨跨!(完结篇)——Kubernetes上手实践

为自己带盐

Docker WSL2 k8s入门 签约计划第三季 8月月更

winpe工具WEPE微PE工具箱

肖飞码字

windows 操作系统

【React源码系列】全网最详细的React异常捕获及处理机制

爱切图的木子老师

前端 React react源码 异常捕获

基于设计稿识别的可视化低代码系统实践

Shopee技术团队

前端 设计 低代码

怎样选择一个好的SaaS知识库工具?

Geek_da0866

Wallys/QCA 9880/802.11ac Mini PCIe Wi-Fi Module, Dual Band, 2,4GHz / 5GHz advanced edition

wallys-wifi6

作为开发人员,您应该熟悉的 7 个 JavaScript 概念

flow

8月月更

Linux进阶显示用户UID和GID

flow

8月月更

【Python】:如何利用Python实现文件操作

翼同学

Python 编程语言 文件操作 8月日更 入门学习

OpenHarmony——内核对象队列之算法详解(下)

OpenHarmony开发者

OpenHarmony

论文分享:「FED BN」使用LOCAL BATCH NORMALIZATION方法解决Non-iid问题

隐语SecretFlow

密码学和算法 机器学习/深度学习

开源一夏 | 基于若依架构的列表详情展示

六月的雨在InfoQ

bootstrap 开源 若依 8月月更

华为云全流程护航《流浪方舟》破竹首发,打造口碑爆款

华为云开发者联盟

云计算 后端 华为云 流浪方舟

Linux进阶删除用户

flow

8月月更

Go-Excelize API源码阅读(五)—— Close()

Regan Yue

Go 开源 源码刨析 8月日更 8月月更

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