写点什么

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

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

关注

评论

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

后端老司机的跨域之旅

勇哥java实战分享

后端 CORS

2022开篇之作,Docker与微服务实战教程

编程江湖

Git fork的学习笔记

Changing Lin

1月月更

如何使用JDBC API操作数据库

编程江湖

JDBC

java学习中cookie原理

编程江湖

java 编程

青藤:一招制敌!微隔离,让勒索软件不再横行

青藤云安全

金融云原生漫谈(三)|银行云原生基础设施构建:裸金属VS虚拟机

York

云原生 金融科技 新基建

创业公司COO:用宜搭落地管理思想,打破数据壁垒|《102个开发者故事》第五期

一只大光圈

低代码 数字化转型 企业管理 钉钉宜搭

「死磕」传统工业软件路径不通 他们给自己造了把梯子

ToB行业头条

常见的跨域场景

郑州埃文科技

数据库 IP 跨域

Swift 在手淘商品评价的技术重构与实践

阿里巴巴终端技术

ios swift 移动开发 客户端

肝了三个月Linux内核,面试薪资直接翻番,我才明白TA的重要性!

Yt

c++ Linux服务器开发 Linux内核 驱动开发

【MongoDB白皮书】DIRT和复杂性的高成本

MongoDB中文社区

mongodb

堡垒机和防火墙的区别是什么?能防删库跑路吗?

行云管家

运维 网络安全 防火墙 堡垒机

Flutter VS React Native,跨端方案大 PK

融云 RongCloud

flutter React Native Discord

Rainbond 对接 Istio 原理讲解和代码实现分析

北京好雨科技有限公司

Kubernetes istio PaaS rainbond

静态代理模式——时间都去哪儿了

蝉沐风

设计模式 代理模式

定了!皮皮APP助力电子竞技游戏师职业技能标准发布!

联营汇聚

金融云原生漫谈(四)|如何构建高可用、高并发、高性能的云原生容器网络?

York

云原生 金融科技 高性能网络

为什么要避免在 Go 中使用 ioutil.ReadAll?

AlwaysBeta

Go 源码 io Go 语言

纯 MongoDB 实现中文全文搜索

MongoDB中文社区

mongodb

vscode中Tasks及Emmet的应用

编程江湖

vscode

防火墙是什么?怎么理解?

行云管家

运维 网络安全 防火墙 堡垒机

金融云原生漫谈(一)|银行业如何快速提升应用研发效能和交付效率?

York

金融云原生漫谈(二)|中小银行破局之道:云原生架构转型全攻略

York

资讯|WebRTC M96 更新

网易云信

大数据 WebRTC 开发

推荐一款少见开源的支付类项目(Spring Boot+Shiro+MyBatis+Redis)

北游学Java

Java redis spring mybatis

2021年度优质创作者评选名单公布!

InfoQ写作社区官方

热门活动

直播系统聊天技术(六):百万人在线的直播间实时聊天消息分发技术实践

JackJiang

消息推送 即时通讯 IM 直播技术 直播聊天室

流式数据质量监控的技术调研及选型思考

字节跳动数据平台

sql 字节跳动 数据质量 流式数据 flik

音视频开发:FFmpeg时间戳详解

赖猫

音视频 ffmpeg

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