写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月前
|
uml C++
VS工具使用——代码生成函数关系图
小引: 在上篇文章《VS工具使用——代码图》中,我向大家介绍了我对工具“代码图”的发现和认识。真是感觉当自己的眼睛不再被蒙蔽的时候,会发现整个世界的美好。所以,这次要向大家介绍我对VS中的另一个容易被忽视的工具—— 自动生成代码关系依赖图的理解。
391 0
|
测试技术 Python
python接口自动化(二十六)--批量执行用例 discover(详解)
我们在写用例的时候,单个脚本的用例好执行,那么多个脚本的时候,如何批量执行呢?这时候就需要用到 unittest 里面的 discover 方法来加载用例了。加载用例后,用 unittest 里面的 TextTestRunner 这里类的 run 方法去一次执行多个脚 本的用例。那么前边介绍那么多都是半道开始,半道出家,这篇就带大家从头到尾,一步一步给小伙伴们详细介绍一下。
219 0
python接口自动化(二十六)--批量执行用例 discover(详解)
|
资源调度
插件开发步骤
插件开发步骤
117 0
|
Java 测试技术 Go
第八章 测试与性能调优--生成文档和测试示例代码
java也可以生成文档, 就像一个手册一样, 可以用来查看方法, 接口, 下面我们给go项目生成文档
77 0
第八章 测试与性能调优--生成文档和测试示例代码
|
SQL 测试技术 数据库
TiDB 源代码学习: ranger 模块代码分析
对数据库技术有一定了解的同行们,应该对 索引前缀匹配 的概念不陌生. 在 TiDB 中 ranger 模块在前缀匹配机制中发挥了一定的作用,所以我想好好了解一下这个模块的代码. ranger 模块介绍 ranger 模块重要的入口是 DetachCondAndBuildRangeForIndex 以及 DetachCondAndBuildRangeForTable 两个函数. 本文以 DetachCondAndBuildRangeForIndex 函数为主要的分析对象,下面简称这个函数位 DCBR DCBR 的入参是: 某个索引信息,主要是用里面的列信息(包含哪些列,以及它们在索引当中
299 0
|
Java API Android开发
Gradle2.0用户指南翻译——第十三章. 编写构建脚本
翻译项目请关注Github上的地址:https://github.com/msdx/gradledoc本文翻译所在分支:https://github.com/msdx/gradledoc/tree/2.0 。
1418 0
|
前端开发 JavaScript 测试技术
《领域特定语言》一3.6 测试DSL
本节书摘来自华章出版社《领域特定语言》一书中的第3章,第3.6节,作者 (英)Martin Fowler,更多章节内容可以访问云栖社区“华章计算机”公众号查看
1392 0
|
XML SQL API
《领域特定语言》一第2章 使用DSL 2.1定义DSL
本节书摘来自华章出版社《领域特定语言》一书中的第2章,第2.1节,作者 (英)Martin Fowler,更多章节内容可以访问云栖社区“华章计算机”公众号查看
2045 0