第2章 现实中的DSL

本章内容

  • 初试设计——第一个基于Java的DSL
  • 利用Groovy改善DSL的表现力
  • DSL的实现模式
  • 选择合适的DSL类型

在第1章里,你已经看到DSL对于开发团队与领域专家之间沟通的改善作用。我们还介绍了DSL的总体架构以及其支持的不同执行模型。然而,如果缺少有意义的真实用例,空谈DSL又有什么用呢?在实际的项目中,你凭什么判断设计DSL是比使用传统软件开发模型更优的解决方案?本章就向你揭示真实世界中的DSL设计。

首先,我们用一个启发性的DSL示例演示从初始设计、实现到最后优化的真实过程;示例照旧来自金融中介业务领域。我们先探讨几种实现,然后阐释在设计DSL实现的过程中会遇到的一般模式。图2-1展示了本章探索过程的路线图。

enter image description here

图2-1 第2章内容的路线图

本章每一节都会讨论真实世界中的DSL应用实例,它可能以实现用例的形式出现,也可能是你日后可以效仿的一套模式。通读本章,你将学会在对问题域建模时用基于DSL的编程范式思考问题。我们对照一个按照典型API思路设计的模型和一个按照DSL思路设计的模型,你会发现后者对于领域用户来说是更具表现力的表达形式。