DSL

Posted po-shi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DSL相关的知识,希望对你有一定的参考价值。

1. DSL:

(Domain Special Language)领域专用语言

前言:第一次接触这个名词是在一本书中,书中没有明确解释什么含义,只是一笔带过;虽有疑惑仍不求甚解,一翻而过。

最近看QUARTZ doc时遇到了,决定一探究竟;

概述:领域专用语言,换个说法就是领域限定语言,即只针对某个领域的语言。说起来可能很难理解,其实我们工作中比比皆是。比如正则,比如window配置文件等。

特性:  1. 聚焦一个特定的领域,极易读懂,功能很少,异常简洁。

     2.  受限表达性:防止DSL逐渐演变为一种通用语言,防止DSL过于复杂,可维护性降低,学习成本提升,偏离方向。

     3.  声明式编程:定义做什么,而不是用一堆命令语句来描述怎么做。

分类: 1. 外部DSL; 2. 内部DSL.

  举个例子区分:对于java语言来说,配置文件XML的语法就相当于外部DSL,而java正则语法等则相当于内部DSL,内部DSL具有特定的风格。而且只用到了语言一部分特性。二者区别在于:是否使用通用语言写。

用例:

结论:

以上是关于DSL的主要内容,如果未能解决你的问题,请参考以下文章

Kotlin DSL 学习

Kotlin DSL 学习

DSL的概念

我可以将 elasticsearch-dsl 的 IpRange 子类化以供 django-elasticsearch-dsl 使用吗?

Ruby DSL 体验?

DSL简介(转)