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的主要内容,如果未能解决你的问题,请参考以下文章
我可以将 elasticsearch-dsl 的 IpRange 子类化以供 django-elasticsearch-dsl 使用吗?