简体中文
English 简体中文 繁體中文
Methodox 首页

Divooka 设计原则

Divooka 是一个“灵活类型、多范式 / 混合范式、AI 赋能、全栈一体、现代的第四代全平台编程系统”:

  • 全栈一体:指的是编程模型,以及我们依靠专门的图形化前端(例如 doc 和 present)来承载专门的“框架”和“插件”逻辑这一事实。
  • 现代:没有任何历史遗留的烂摊子,采用现代 C#,提供完全感知上下文的节点建议,并为高层应用自动生成代码。
  • 编程系统:它集成了 IDE、编译器、编辑器、应用程序框架和前端应用。
  • Divooka 不是单个程序,而是一个由相互协作的组件构成的系统,这些组件可以在各处复用,用于定制应用。一个很好的例子是 Stewer 运行时,它的功能在许多地方都以类似方式出现。

我们力求现代化,并在合适时提供 DSL。许多设计决策最终取决于可用资源——利用现有的格式和库(例如 YAML、SkiaSharp)可以加快开发进程,尽管现有的标准化方案并不总是最适合 Divooka。总的来说,我们的目标是提供一个隔离层,把特定库的实现细节(例如对 SkiaSharp 的依赖)对用户隐藏起来,让用户只需熟悉 Divooka 原生 API 即可。

配置风格

优先在每个函数上使用强类型、显式的值,而不是像传统 C 风格过程式 API 那样基于状态进行配置。对于某些图形 API,由于需要跨 CPU-GPU 边界更新资源,这样做可能带来少量开销,但从高层脚本编写的角度来看,通常更易于使用。目前可参阅这篇博客了解概况。

图原生 API

根据上述配置风格以及高层的使用特性,我们偏好扁平、显式、自包含的节点——从开发的角度来看,这意味着在 C# 中以静态成员的形式公开功能。

在 Divooka 中,以及在我们处理事情、解决问题的方式中,有一个反复出现的模式:处理任何事情总有三个不同的层次可选——第一,高层;第二,中层;第三,底层。GUI 应用程序框架和 Data Grid 操作就是很好的例子。

无论从根本上还是从实践上说,要善于解决问题,就要非常熟悉各种可用的数据结构和工具,尤其是平台自带的那些,从而避免重复劳动。

其他

请注意,具体的库和程序可能有各自的设计原则。

以下是具有特定设计风格的标准库的完整列表:

  1. Pure
  2. Data Grid 库

详情请参阅各自的文档或设计说明。