DSL 设计

意义

VSeed 是声明式 DSL

  • DSL 设计是领域问题的表达艺术, 能有效地将复杂问题简单化。
  • DSL 让熟悉的人像书写母语一样自然地编码。当你熟悉VSeed后, 渲染图表就像在写自然语言一样简单。
  • VChartVTable亦如此
TIP

声明式 DSL 关注"是什么" (What)。描述期望的结果或最终状态应该是什么样子,而不关心计算机内部如何达到这个状态的具体步骤。

命令式 DSL

关注"如何做" (How)。提供一系列明确的、逐步执行的指令,告诉计算机如何一步步达到目标状态。

VSeed 取舍

  1. 领域聚焦性(Focus)

牺牲一定的通用性, 专注于解决特定领域的问题。因此VSeed的核心目标 不深入满足一个图表类型的所有需求, 而是专注于图表类型之前的数据转换。其余的功能, 如主题、交互、动画等.

  1. 抽象层级(Abstraction Level)

VSeed 提供了较高的抽象层级, 使得用户可以专注于解决问题, 而不是关注底层的实现细节。从而提升开发效率, 例如切换图表类型, 改一个参数即可, 而不需要关注如何切换的细节

  1. 约束即优势(Constraint is Advantage)

VSeed 强调约束, 接收一个VSeed DSL, 输出一个VTable或者VChartspec, 这使得用户可以更灵活的控制单个图表的功能, VSeed非是一个黑盒.

因此VSeed可以简单的认为是一个Spec Builder, 不破坏VTable或者VChart的原始功能, 任何VChart, VTable用户都可以快速在现有的平台内接入VSeed