|
1 | 1 | --- |
2 | | -title: 欢迎 |
3 | | -description: 欢迎访问 ObjectStack 文档 |
| 2 | +title: ObjectStack 规范 |
| 3 | +description: 协议驱动、本地优先、数据库无关的全栈开发平台 |
4 | 4 | --- |
5 | 5 |
|
6 | | -# 欢迎访问 ObjectStack |
| 6 | +# ObjectStack 平台规范 |
7 | 7 |
|
8 | | -ObjectStack 是一个综合性平台,提供强大的工具和框架来构建现代应用程序。 |
| 8 | +**ObjectStack** 是一个协议驱动的全栈开发平台,通过标准化的 JSON 协议将业务逻辑与技术实现分离。它使开发者能够构建可移植的、数据库无关的应用程序,并实现完全的数据主权。 |
9 | 9 |
|
10 | | -## 我们的产品 |
| 10 | +## 核心架构原则 |
11 | 11 |
|
12 | | -我们提供三个核心产品,旨在简化您的开发工作流程: |
| 12 | +ObjectStack 建立在三个不可动摇的支柱之上: |
13 | 13 |
|
14 | | -- **ObjectUI**:现代化的 UI 组件库,用于构建美观且响应式的用户界面 |
15 | | -- **ObjectQL**:强大的查询语言和数据访问层,用于高效的数据操作 |
16 | | -- **ObjectOS**:操作系统框架,为构建可扩展应用程序提供基础 |
| 14 | +### 1. 协议驱动架构 |
| 15 | +逻辑存在于**声明式协议**(JSON)中,而非命令式代码中。业务定义是数据,而非函数。这使得: |
| 16 | +- **可移植性**:协议与语言和框架无关 |
| 17 | +- **可组合性**:从简单的声明式块构建复杂系统 |
| 18 | +- **AI 生成**:从协议规范生成 80% 的应用代码 |
| 19 | +- **版本控制**:将业务逻辑作为结构化数据进行版本管理 |
| 20 | + |
| 21 | +### 2. 本地优先设计 |
| 22 | +应用程序**默认离线工作**。云连接是可选的,而非强制的。这确保了: |
| 23 | +- **数据主权**:用户拥有数据,而非平台 |
| 24 | +- **零供应商锁定**:数据可导出为标准格式(.oos、.json) |
| 25 | +- **默认隐私**:无需遥测或云依赖 |
| 26 | +- **弹性**:应用程序在无网络连接时也能运行 |
| 27 | + |
| 28 | +### 3. 数据库无关 |
| 29 | +一次编写,在**任何数据库**上运行。ObjectQL 完全抽象了数据层: |
| 30 | +- **跨数据库协议**:MySQL、PostgreSQL、Oracle、SQLite、SQL Server 使用统一查询语法 |
| 31 | +- **零迁移成本**:切换数据库无需更改应用代码 |
| 32 | +- **方言抽象**:引擎处理特定数据库的 SQL 生成 |
| 33 | +- **统一驱动接口**:无论底层存储如何,API 都保持一致 |
| 34 | + |
| 35 | +--- |
| 36 | + |
| 37 | +## 平台组件 |
| 38 | + |
| 39 | +ObjectStack 由三个解耦的引擎组成,它们通过标准化的 JSON 协议进行通信: |
| 40 | + |
| 41 | +```mermaid |
| 42 | +graph TB |
| 43 | + subgraph "应用层" |
| 44 | + App[您的应用程序] |
| 45 | + end |
| 46 | + |
| 47 | + subgraph "ObjectStack 平台" |
| 48 | + OS[ObjectOS<br/>运行时与编排] |
| 49 | + UI[ObjectUI<br/>声明式 UI 引擎] |
| 50 | + QL[ObjectQL<br/>数据协议引擎] |
| 51 | + end |
| 52 | + |
| 53 | + subgraph "基础设施层" |
| 54 | + DB[(数据库<br/>MySQL/PG/Oracle/SQLite)] |
| 55 | + Renderer[UI 渲染器<br/>React/Vue/Flutter] |
| 56 | + end |
| 57 | + |
| 58 | + App --> OS |
| 59 | + OS --> UI |
| 60 | + OS --> QL |
| 61 | + UI --> Renderer |
| 62 | + QL --> DB |
| 63 | + |
| 64 | + style OS fill:#e1f5ff |
| 65 | + style UI fill:#fff3e0 |
| 66 | + style QL fill:#f3e5f5 |
| 67 | +``` |
| 68 | + |
| 69 | +### ObjectQL:数据协议引擎 |
| 70 | + |
| 71 | +**角色**:数据库无关的查询引擎和模式编译器 |
| 72 | + |
| 73 | +ObjectQL 定义了一种基于 JSON 的通用查询语言,可编译为任何支持数据库的原生 SQL。它通过完全抽象数据层来消除供应商锁定。 |
| 74 | + |
| 75 | +**核心能力**: |
| 76 | +- **模式定义**:将数据模型声明为 JSON 规范 |
| 77 | +- **查询协议**:所有 CRUD 操作的统一 JSON 语法 |
| 78 | +- **AST 编译**:将协议转译为特定数据库的 SQL |
| 79 | +- **虚拟城市**:多租户数据隔离机制 |
| 80 | +- **驱动抽象**:可插拔数据库驱动(MySQL、PostgreSQL、Oracle、SQLite、SQL Server) |
| 81 | + |
| 82 | +[→ ObjectQL 规范](/docs/objectql) |
| 83 | + |
| 84 | +### ObjectUI:声明式 UI 引擎 |
| 85 | + |
| 86 | +**角色**:基于协议的界面渲染器 |
| 87 | + |
| 88 | +ObjectUI 将 UI 开发从命令式代码转变为声明式 JSON 规范。界面是数据,而非函数。 |
| 89 | + |
| 90 | +**核心能力**: |
| 91 | +- **组件协议**:表单、表格、网格、仪表板的 JSON 定义 |
| 92 | +- **数据绑定**:与 ObjectQL 数据层自动同步 |
| 93 | +- **动作协议**:声明式事件处理(API 调用、导航、对话框) |
| 94 | +- **渲染器无关**:React 实现可用,Vue/Flutter 已规划 |
| 95 | +- **主题系统**:可自定义样式而不改变结构 |
| 96 | + |
| 97 | +[→ ObjectUI 规范](/docs/objectui) |
| 98 | + |
| 99 | +### ObjectOS:运行时平台 |
| 100 | + |
| 101 | +**角色**:应用编排和平台服务 |
| 102 | + |
| 103 | +ObjectOS 将 ObjectQL 和 ObjectUI 绑定到一个连贯的运行时环境中,提供身份管理、访问控制和部署能力。 |
| 104 | + |
| 105 | +**核心能力**: |
| 106 | +- **QL-UI 绑定**:数据层和界面层的自动连接 |
| 107 | +- **身份系统**:内置带 RBAC 的用户管理 |
| 108 | +- **字段级安全**:细粒度数据访问控制 |
| 109 | +- **插件架构**:可扩展的业务逻辑层 |
| 110 | +- **部署模式**:独立(.oos 文件)、服务器(Docker)、多租户 SaaS |
| 111 | + |
| 112 | +[→ ObjectOS 规范](/docs/objectos) |
| 113 | + |
| 114 | +--- |
| 115 | + |
| 116 | +## 为什么选择 ObjectStack? |
| 117 | + |
| 118 | +### 对于个人开发者 |
| 119 | +构建本地优先应用程序,**无需服务器基础设施**: |
| 120 | +- 个人工具(笔记、CRM、项目管理) |
| 121 | +- 使用 SQLite 的离线应用程序 |
| 122 | +- 零部署复杂性——只需一个 .oos 文件 |
| 123 | +- 完全的隐私和数据所有权 |
| 124 | + |
| 125 | +### 对于企业 IT |
| 126 | +通过标准协议层**统一异构遗留系统**: |
| 127 | +- 连接多个数据库(Oracle、SQL Server、MySQL) |
| 128 | +- 在所有系统上提供统一的 ObjectQL API |
| 129 | +- 使用一致的查询接口消除数据孤岛 |
| 130 | +- 将集成复杂性降低 10 倍 |
| 131 | + |
| 132 | +### 对于 SaaS 初创公司 |
| 133 | +专注于**核心业务逻辑**,而非基础设施: |
| 134 | +- 跳过数月的 CRUD/认证/权限样板代码 |
| 135 | +- 在协议级别内置多租户 |
| 136 | +- 数据库无关允许客户选择 |
| 137 | +- 从 SQLite 扩展到 PostgreSQL 无需更改代码 |
| 138 | + |
| 139 | +### 对于低代码平台供应商 |
| 140 | +提供**真正的可移植性**,无供应商锁定: |
| 141 | +- 客户选择自己的数据库 |
| 142 | +- 将应用程序导出/导入为标准 .oos 文件 |
| 143 | +- 基于协议的设计支持可视化编辑工具 |
| 144 | +- 对 AI 友好的规范用于代码生成 |
| 145 | + |
| 146 | +--- |
| 147 | + |
| 148 | +## 设计理念 |
| 149 | + |
| 150 | +ObjectStack 遵循**[宣言](/docs/framework/manifesto)**中概述的原则: |
| 151 | + |
| 152 | +1. **协议中立性**:规范先于实现。协议层中没有数据库、语言或框架依赖。 |
| 153 | + |
| 154 | +2. **机制优于策略**:协议定义接口(机制),而非实现(策略)。用户系统和业务逻辑属于 ObjectOS,而非 ObjectQL/UI 规范。 |
| 155 | + |
| 156 | +3. **数据主权**:强制本地优先。所有核心功能必须离线工作。数据必须可导出为标准格式。 |
| 157 | + |
| 158 | +4. **稳定性承诺**:破坏性更改需要 2 个主要版本的迁移窗口。基础设施必须稳定。 |
| 159 | + |
| 160 | +这些原则是**不可动摇且不可协商的**。违反这些原则的功能不能添加到 ObjectStack。 |
| 161 | + |
| 162 | +--- |
| 163 | + |
| 164 | +## 快速开始 |
| 165 | + |
| 166 | +根据您的角色选择学习路径: |
| 167 | + |
| 168 | +### 快速开始(5 分钟) |
| 169 | +立即运行一个可工作的应用程序: |
| 170 | +- **[快速开始指南](/docs/framework/quickstart)**:构建您的第一个 ObjectStack 应用 |
| 171 | + |
| 172 | +### 概念基础(30 分钟) |
| 173 | +了解理念和架构: |
| 174 | +- **[欢迎使用 ObjectStack](/docs/framework/welcome)**:平台概述和价值主张 |
| 175 | +- **[宣言](/docs/framework/manifesto)**:核心原则和设计决策 |
| 176 | +- **[架构指南](/docs/framework/architecture)**:技术设计和组件关系 |
| 177 | + |
| 178 | +### 组件规范(每个 2-3 小时) |
| 179 | +深入了解每个引擎的协议规范: |
| 180 | +- **[ObjectQL 规范](/docs/objectql)**:模式定义、查询 DSL、聚合 |
| 181 | +- **[ObjectUI 规范](/docs/objectui)**:组件协议、动作、渲染 |
| 182 | +- **[ObjectOS 规范](/docs/objectos)**:身份管理、RBAC、部署 |
| 183 | + |
| 184 | +### AI 辅助开发 |
| 185 | +了解如何利用 LLM 进行快速开发: |
| 186 | +- **[AI 法典](/docs/framework/ai-codex)**:使用 AI 从协议规范生成 80% 的应用程序 |
| 187 | + |
| 188 | +--- |
| 189 | + |
| 190 | +## 示例:协议中的待办事项应用 |
| 191 | + |
| 192 | +一个完整的应用程序定义为声明式 JSON: |
| 193 | + |
| 194 | +**数据层(ObjectQL 模式)**: |
| 195 | +```json |
| 196 | +{ |
| 197 | + "objects": { |
| 198 | + "todos": { |
| 199 | + "fields": { |
| 200 | + "title": { "type": "text", "required": true }, |
| 201 | + "completed": { "type": "boolean", "defaultValue": false }, |
| 202 | + "priority": { "type": "select", "options": ["high", "medium", "low"] }, |
| 203 | + "owner": { "type": "lookup", "reference_to": "_users" } |
| 204 | + }, |
| 205 | + "permission_set": { |
| 206 | + "user": { |
| 207 | + "allowRead": true, |
| 208 | + "allowCreate": true, |
| 209 | + "allowEdit": "owner eq $user.id", |
| 210 | + "allowDelete": "owner eq $user.id" |
| 211 | + } |
| 212 | + } |
| 213 | + } |
| 214 | + } |
| 215 | +} |
| 216 | +``` |
| 217 | + |
| 218 | +**界面层(ObjectUI 协议)**: |
| 219 | +```json |
| 220 | +{ |
| 221 | + "type": "page", |
| 222 | + "title": "我的任务", |
| 223 | + "body": { |
| 224 | + "type": "table", |
| 225 | + "object": "todos", |
| 226 | + "filters": [["completed", "=", false]], |
| 227 | + "columns": [ |
| 228 | + { "field": "title", "label": "任务" }, |
| 229 | + { "field": "priority", "label": "优先级" }, |
| 230 | + { "field": "completed", "label": "完成", "type": "boolean" } |
| 231 | + ], |
| 232 | + "actions": [ |
| 233 | + { "label": "标记完成", "type": "update", "data": { "completed": true } }, |
| 234 | + { "label": "删除", "type": "delete", "confirm": true } |
| 235 | + ] |
| 236 | + } |
| 237 | +} |
| 238 | +``` |
| 239 | + |
| 240 | +**结果**:一个功能齐全、数据库无关、权限控制的任务管理应用程序——完全定义为数据。 |
| 241 | + |
| 242 | +--- |
| 243 | + |
| 244 | +## 社区和生态系统 |
| 245 | + |
| 246 | +- **GitHub**:[github.com/objectstack-ai](https://github.com/objectstack-ai) |
| 247 | +- **协议规范**:本文档站点(objectstack.org) |
| 248 | +- **参考实现**:开源引擎(MIT/Apache 2.0) |
| 249 | +- **社区插件**:通过 ObjectOS 插件架构可扩展 |
| 250 | + |
| 251 | +--- |
| 252 | + |
| 253 | +## 下一步 |
| 254 | + |
| 255 | +1. **理解理念**:阅读**[宣言](/docs/framework/manifesto)**以了解 ObjectStack 的核心原则 |
| 256 | +2. **构建您的第一个应用**:按照**[快速开始指南](/docs/framework/quickstart)**部署一个可工作的应用程序 |
| 257 | +3. **学习协议**:研究**[ObjectQL](/docs/objectql)**、**[ObjectUI](/docs/objectui)** 和 **[ObjectOS](/docs/objectos)** 规范 |
| 258 | +4. **探索用例**:查看**[架构](/docs/framework/architecture)**以了解企业模式 |
| 259 | + |
| 260 | +欢迎加入 ObjectStack 生态系统。让我们一起构建协议驱动开发的未来。 |
0 commit comments