DSL 设计
意义
VSeed 是声明式 DSL
- DSL 设计是领域问题的表达艺术, 能有效地将复杂问题简单化。
- DSL 让熟悉的人像书写母语一样自然地编码。当你熟悉VSeed后, 渲染图表就像在写自然语言一样简单。
VChart、VTable亦如此
Tip
声明式 DSL 关注"是什么" (What)。描述期望的结果或最终状态应该是什么样子,而不关心计算机内部如何达到这个状态的具体步骤。
命令式 DSL 关注"如何做" (How)。提供一系列明确的、逐步执行的指令,告诉计算机如何一步步达到目标状态。
VSeed 取舍
- 领域聚焦性(Focus)
牺牲一定的通用性, 专注于解决特定领域的问题。因此VSeed的核心目标 不深入满足一个图表类型的所有需求, 而是专注于图表类型之前的数据转换。其余的功能, 如主题、交互、动画等.
- 抽象层级(Abstraction Level)
VSeed 提供了较高的抽象层级, 使得用户可以专注于解决问题, 而不是关注底层的实现细节。从而提升开发效率, 例如切换图表类型, 改一个参数即可, 而不需要关注如何切换的细节
- 约束即优势(Constraint is Advantage)
VSeed 强调约束, 接收一个VSeed DSL, 输出一个VTable或者VChart的spec, 这使得用户可以更灵活的控制单个图表的功能, VSeed非是一个黑盒.
因此VSeed可以简单的认为是一个Spec Builder, 不破坏VTable或者VChart的原始功能, 任何VChart, VTable用户都可以快速在现有的平台内接入VSeed