写DSL的步骤

简介:

1.选定宿主语言,最好选用元编程能力强悍的语言作为宿主语言。
2.确定DSL的样子,让脑袋空白,不去考虑任何实现问题,纯粹思考你想要实现的dsl是什么样子
3.用你想要的DSL写一个最基本的例子,只包括最基本的功能
4.开始实现DSL,尽快让你的DSL例子以dirty and quick的方式跑起来。
5.写更多DSL的例子,慢慢包括你想要的所有功能,并一一实现,在这个过程中你可能改变DSL的样子,原来模糊的东西渐渐清楚。
6.大功告成,review你的代码并添加自动化测试,将代码中dirty和bad smell的部分一一剔除。
7.让你的DSL接受实际应用的考验吧。

文章转自庄周梦蝶  ,原文发布时间 2011-07-25

目录
相关文章
|
10月前
|
前端开发 Java 数据库连接
JPA-querydsl增强工具,query-dsl-plus,现在已开源并推送到mvnrepository
使用JPA,随着需求的变更,数据查询条件也会越来越复杂,往往前端改动了,后端还需要做调整,很是麻烦,想着将查询条件封装成string,随时可以更改,一个查询接口就能完成绝大多数条件查询。
99 0
|
11月前
|
uml C++
VS工具使用——代码生成函数关系图
小引: 在上篇文章《VS工具使用——代码图》中,我向大家介绍了我对工具“代码图”的发现和认识。真是感觉当自己的眼睛不再被蒙蔽的时候,会发现整个世界的美好。所以,这次要向大家介绍我对VS中的另一个容易被忽视的工具—— 自动生成代码关系依赖图的理解。
405 0
|
测试技术 Python
python接口自动化(二十六)--批量执行用例 discover(详解)
我们在写用例的时候,单个脚本的用例好执行,那么多个脚本的时候,如何批量执行呢?这时候就需要用到 unittest 里面的 discover 方法来加载用例了。加载用例后,用 unittest 里面的 TextTestRunner 这里类的 run 方法去一次执行多个脚 本的用例。那么前边介绍那么多都是半道开始,半道出家,这篇就带大家从头到尾,一步一步给小伙伴们详细介绍一下。
220 0
python接口自动化(二十六)--批量执行用例 discover(详解)
|
资源调度
插件开发步骤
插件开发步骤
118 0
|
消息中间件 存储 JSON
一种面向数据加工DSL的代码翻译算法
背景面向数据加工领域的DSL(特定领域语言,Domain-Specific Language)无需使用者编写较为复杂的通常程序语言,具有较好的用户体验,应用较为广泛。如何将DSL翻译为机器可执行的程序是每种DSL均需面对的问题,并且传统的DSL翻译通常采用直译的方式,运行时执行效率较低。本文,提出一种面向数据加工领域语言的代码翻译算法,针对不同的DSL函数分别设计了代码翻译方案,不仅保证了语义的正
一种面向数据加工DSL的代码翻译算法
|
XML 数据格式
详细解析Activiti Modeler!工作流建模组件的使用说明
本篇文章对工作流Activiti中的建模组件Activiti Modeler的使用进行的详细的说明。Activiti Modeler主要负责对工作流的流程模型进行操作,包括编辑流程模型,导入流程模型,转换流程定义到流程模型,流程模型部署到Activiti的流程引擎。通过这篇文章的学习,可以帮助我们熟练的学会使用工作流建模组件Activiti Modeler。
1737 0
详细解析Activiti Modeler!工作流建模组件的使用说明
|
XML SQL API
《领域特定语言》一第2章 使用DSL 2.1定义DSL
本节书摘来自华章出版社《领域特定语言》一书中的第2章,第2.1节,作者 (英)Martin Fowler,更多章节内容可以访问云栖社区“华章计算机”公众号查看
2054 0
|
前端开发 JavaScript 测试技术
《领域特定语言》一3.6 测试DSL
本节书摘来自华章出版社《领域特定语言》一书中的第3章,第3.6节,作者 (英)Martin Fowler,更多章节内容可以访问云栖社区“华章计算机”公众号查看
1397 0
《领域特定语言》一3.8 DSL迁移
本节书摘来自华章出版社《领域特定语言》一书中的第3章,第3.8节,作者 (英)Martin Fowler,更多章节内容可以访问云栖社区“华章计算机”公众号查看
1231 0
|
XML 测试技术 数据格式
《领域特定语言》一第3章 实现DSL 3.1DSL处理之架构
本节书摘来自华章出版社《领域特定语言》一书中的第3章,第3.1节,作者 (英)Martin Fowler,更多章节内容可以访问云栖社区“华章计算机”公众号查看
1731 0