在 2025 收官前,看清 Data + AI 的真实走向,点击查看 BUILD 大会精华版 了解详情
写点什么

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

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

关注

评论

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

软件测试 | 测试开发 | 网页 frame 与多窗口处理

测吧(北京)科技有限公司

测试

JS基础——JS数据类型

龙之幽谷

前端 js

软件测试 | 测试开发 | Spring boot 之 RestTemplate访问

测吧(北京)科技有限公司

测试

刘奇:能否掌控复杂性,决定着分布式数据库的生死存亡

PingCAP

#TiDB

Eclipse Theia技术揭秘——自定义布局

龙之幽谷

开发工具

heco火币生态链智能合约dapp系统开发案例,合约部署

开发微hkkf5566

软件测试 | 测试开发 | Windows-Python 应用:使用消息操作窗口

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 从几个开源项目浅谈IOS视频流输出方案

测吧(北京)科技有限公司

测试

Eclipse Theia技术揭秘——构建桌面IDE

龙之幽谷

开发工具

开发者有话说 | 一位工作十余年工程师的成长之路

矜辰所致

个人成长 经历分享 9月月更 成长感悟

软件测试 | 测试开发 | 如何提取 IOS Runtime Headers

测吧(北京)科技有限公司

测试

VSCode技术揭秘(一)

龙之幽谷

vscode 开发工具

软件测试 | 测试开发 | 浅谈Shiro框架在Spring Boot中的认证应用

测吧(北京)科技有限公司

测试

MobSDK 客户端API

MobTech袤博科技

API an'droid

如何建设前端物料平台?

龙之幽谷

前端 组件化

新书上市 | 连接组,向人类科学的最终前沿进军

图灵教育

神经网络 大脑 脑科学

Eclipse Theia技术揭秘——初识Theia

龙之幽谷

开发工具

MobSDK 快速集成文档

MobTech袤博科技

Android Studio an'droid

软件测试 | 测试开发 | JVM内存溢出问题排查

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | Mysql 之执行计划

测吧(北京)科技有限公司

测试

Struts 校验器(Validate)

表单校验 Struts2 9月月更

企业级npm仓库搭建

龙之幽谷

前端 nexus NPM仓库

Eclipse Theia技术揭秘——脚手架源码分析

龙之幽谷

开发工具

软件测试 | 测试开发 | 了解磁盘IO的那些事

测吧(北京)科技有限公司

测试

DophineSheduler上下游任务之间动态传参案例及易错点总结

白鲸开源

大数据 DolphinScheduler 任务调度 大数据 开源 参数传递

软件测试 | 测试开发 | 如何提取 IOS Document_apis

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | web自动化测试-执行 JavaScript 脚本

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 使用 ReportLab 绘制 PDF

测吧(北京)科技有限公司

测试

新书上市 | 连接组,向人类科学的最终前沿进军

图灵社区

神经网络 大脑 脑科学

企业级前端组件建设

龙之幽谷

前端 组件库

leetcode 572. Subtree of Another Tree 另一棵树的子树 (简单)

okokabcd

LeetCode 数据结构与算法

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