DSL(Domain Specific Language) 意为领域特定语言,主要作用是在某个特定领域下制定一套规范,完成特定的任务,从而提高效率与生产力。我们最熟悉的HTML & CSS就是一种DSL,它只是对Web界面的结构和样式进行描述,是Web领域下的特定语言。除此之外,SQL语句、正则表达式也是常用的DSL。与DSL相对应的是GPL(General Purpose Language),即通用编程语言,如C/Java/Python/PHP/JS,它们是为了解决更加抽象的问题而设计的通用语言。

构建 DSL包含了两个关键的要素:

  1. DSL的语法设计;
  2. DSL的解析。

amis采用了DSL的思想,通过JSON配置来生成页面。对应到两个关键要素为:

  1. JSON Schema就是特定的语言,描述了页面的结构、组件的属性、展示的文案等等;
  2. amis实现了一套JSON Schema的解析器,能够将JSON渲染为可视化页面。对于用户来讲,用户只需要按照特定的格式书写一段JSON,就可以得到想要的页面。即使不了解前端技术也能配置一二,降低了页面开发的门槛。