常见问题
为什么框架被称为 Spine?

我们希望为用户提供一个框架,该框架提供基础设施并将应用程序的“服务”部分与他们的“大脑”(或者换句话说,业务逻辑)连接起来。

为什么使用 Protobuf 而不是 JSON?

由于协议缓冲区已经以多种语言实现,因此它们使架构中的多语言应用程序之间的互操作性变得更加简单。 如果您要使用 Ruby 或 Go 语言引入一项新服务,或者甚至与用 Node 或 Clojure 编写的后端进行通信,您只需将原始文件交给用目标语言编写的代码生成器,您就可以得到一些不错的结果。 保证这些架构之间的安全性和互操作性。

平台特定数据类型的细节应该在目标语言实现中为您处理,并且您可以重新专注于您的任务,而不是在临时 JSON 编码和解码方案中匹配字段和数据类型。

为什么使用 Protobuf 而不是 Cap'n Proto、SBE 或 FlatBuffers?
看一下 Protobuf v2 和 Cap'n Proto 的作者 Kenton Varda 创建的比较矩阵。 以下是使 Protobuf 成为我们框架的最佳选择的主要功能:
  • 模式演变——业务模型应该随着业务的增长而演变。
  • 可用作可变状态——用于转换聚合状态和流投影。
  • 其他语言 — 用于支持用 JavaScript、JavaNano、Swift、Objective-C 和其他编程语言编写的客户端应用程序。
此外,Google 多年来的成功使用 Protobuf 技术所取得的成功是选择 Protobuf 而不是其他替代方案的一个主要因素。
我可以使用哪个版本的 Protobuf?

该框架基于并仅支持 proto3 方言。

产品路线图是什么?
以下是我们对 Spine 未来版本的计划:
  • PostgreSQL 存储实现;
  • 迁移到 Java 11;
  • 来自 Protobuf 的脚手架实体类;
  • 使用现有 Java 模型定义生成有界上下文。
我们还将重点关注流行的编程语言和技术:
  • Node.js 支持用户创建 UI 进行投影开发。
  • Dart 客户端库。
您支持 Maven 吗?

不,我们没有计划支持它。
如果您要将 Spine 添加到现有的基于 Maven 的项目中,很可能它将作为 Bubble Context 实现。
如果是这样,您可以拥有一个基于 Gradle 的子项目,与外部基于 Maven 的项目集成。

   |    备案号:京ICP备09015132号-1044