协议驱动开发:软件工程的未来

如果你向 90 年代的开发者展示我们今天如何构建软件——React 组件、微服务、GraphQL——他们会对工具感到惊讶。但他们也会感到困惑:

“你写 10,000 行 TypeScript 只是为了把一个表单连接到数据库?Schema 在哪里?声明式逻辑在哪里?为什么所有东西都是命令式代码?”

他们说得有道理。

软件开发的下一次进化不是更好的框架。而是更少的框架。

这就是协议驱动开发 (Protocol-Driven Development):将意图表达为结构化数据 (Schema, 清单, 协议),并让编译器、运行时和 AI 助手生成实现。

这不仅仅是理论。它正在发生。ObjectStack 正是为此未来而设计。

问题:代码太多,意图太少

现代软件开发有一个信噪比问题

例子:构建一个 CRUD API

意图 (你想要的):

  • 一个 Customer 实体,包含字段:name, email, phone
  • REST 端点:GET /customers, POST /customers, PUT /customers/:id, DELETE /customers/:id
  • 验证:email 必须有效,phone 可选
  • 安全:只有拥有 customer-read 角色的认证用户可以访问

实现 (你写的):

  • TypeScript 类型 (50 行): 接口, DTO, 验证 Schema
  • 数据库模型 (30 行): ORM 实体, 迁移
  • 控制器 (80 行): 路由处理程序, 请求解析, 响应格式化
  • 服务层 (60 行): 业务逻辑, 数据库调用
  • 中间件 (40 行): 认证, 授权
  • 测试 (150 行): 单元测试, 集成测试
  • API 文档 (70 行): OpenAPI 规范

总计:~480 行代码来表达 4 句话的意图。

低效之处

90% 的代码是样板代码

  • 将路由连接到控制器
  • 解析请求体
  • 验证输入
  • 处理错误
  • 检查权限
  • 格式化响应
  • 编写重复的测试

只有 10% 是独特的业务逻辑。

这种低效带来了巨大的成本:

  • 更长的开发时间 (数周而不是数小时)
  • 更多的 Bug (480 行 = 480 个犯错机会)
  • 维护负担 (每次框架更新都会破坏某些东西)
  • 知识孤岛 (初级开发者淹没在样板代码中)

洞见:分离意图与实现

如果你能只表达一次意图,并让编译器生成实现会怎样?

# customer.objectql.yml (30 行意图)
entity:
  name: Customer
  fields:
    - name: name
      type: text
      required: true
    
    - name: email
      type: text
      validation: email
      required: true
    
    - name: phone
      type: text
      required: false
  
  permissions:
    read: ["customer-read"]
    write: ["customer-write"]
  
  endpoints:
    - GET /customers
    - POST /customers
    - PUT /customers/:id
    - DELETE /customers/:id

这就够了。30 行 YAML 替代了 480 行 TypeScript。

ObjectQL 编译器:

  1. 生成数据库 Schema (Postgres/SQL)
  2. 生成 API 路由 (Node.js/Serverless)
  3. 生成验证逻辑 (Zod/Joi)
  4. 生成 TypeScript 类型 (给前端使用)
  5. 生成 OpenAPI 文档

为什么现在?AI 因素

协议驱动开发不仅仅是关于效率。它是关于 AI 就绪性

LLM (大型语言模型) 擅长编写代码,但它们非常擅长理解结构化意图。

  • 让 AI 生成 480 行能够完美工作的 NestJS 代码是很困难的(上下文窗口限制,幻觉,细微的 Bug)。
  • 让 AI 生成 30 行有效的 YAML Schema 是微不足道的。

基于协议的架构为 AI 提供了完美的接口。

AI 辅助的工作流

  1. 你提示 AI: “我需要一个用于牙科诊所的 CRM 系统,包含病人预约和保险记录。”
  2. AI 生成: 5 个 ObjectQL Schema (Patient, Appointment, Insurance) 和 2 个 ObjectOS 工作流 (AppointmentReminder, InsuranceClaim)。
  3. 你审查: 你阅读 YAML。它易于阅读。你修正了一个字段。
  4. 你部署: ObjectStack 编译器接管并构建全栈应用。

代码成为了汇编语言。协议成为了高级语言。

ObjectStack 的协议套件

我们设计 ObjectStack 作为这套新原语的标准库:

  1. ObjectQL (数据协议): 定义数据、关系和验证。
  2. ObjectOS (控制协议): 定义工作流、权限和作业。
  3. ObjectUI (视图协议): 定义布局、组件和交互。

例子:ObjectUI

不用写 React 组件:

# view.yml
type: page
title: Customer Details
layout: split
left:
  - type: card
    source: Customer
right:
  - type: list
    source: Customer.orders

如果明天 React 死了,我们更新 ObjectUI 编译器以输出 Vue、Svelte 或 iOS SwiftUI。你的意图依然有效。

结论:未来是声明式的

软件开发正在进化:

  • 1980s-1990s: 汇编 → C (低级命令式)
  • 2000s-2010s: Java, Python, JavaScript (高级命令式)
  • 2020s-2030s: 协议, Schema, AI 生成 (声明式)

趋势很明显: 我们正在抽象掉实现细节并专注于意图。

ObjectStack 通过提供以下内容加速这一转变:

  • ObjectQL (数据协议)
  • ObjectOS (控制协议)
  • ObjectUI (视图协议)

问题不在于协议驱动开发是否会发生。而在于你是否准备好了。

开始设计协议。让编译器处理实现。构建比框架更长寿的系统。

软件工程的未来是声明式的。未来是协议驱动的。


准备好进行协议优先构建了吗? 探索 ObjectQL查看完整架构