Skip to content

CodeWave 核心架构

整体架构

┌─────────────────────────────────────────────────────────────┐
│                    设计时(Design Time)                      │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────────┐  │
│  │  数据建模器  │  │  前端设计器  │  │   逻辑编排器     │  │
│  │  (ER 设计)   │  │  (拖拽 UI)   │  │   (流程/表达式)  │  │
│  └──────────────┘  └──────────────┘  └──────────────────┘  │
└──────────────────────────┬──────────────────────────────────┘
                           │ 元数据(JSON/YAML)
┌──────────────────────────▼──────────────────────────────────┐
│                    代码生成引擎                                │
│  前端代码生成(Vue 3)  后端代码生成(Node.js/Java)         │
└──────────────────────────┬──────────────────────────────────┘

┌──────────────────────────▼──────────────────────────────────┐
│                    运行时(Runtime)                           │
│  ┌──────────────────┐  ┌──────────────────────────────────┐ │
│  │  前端运行时       │  │  后端运行时                      │ │
│  │  Vue 3 + Router  │  │  API 服务 + 数据库访问层         │ │
│  └──────────────────┘  └──────────────────────────────────┘ │
└──────────────────────────┬──────────────────────────────────┘

┌──────────────────────────▼──────────────────────────────────┐
│                    基础设施层                                  │
│  MySQL  Redis  对象存储  消息队列  第三方 API                 │
└─────────────────────────────────────────────────────────────┘

数据建模引擎

实体建模

实体定义示例(员工管理)
实体:Employee(员工)
├── 字段
│   ├── id: Long(主键,自增)
│   ├── name: String(姓名,必填,最大 50 字符)
│   ├── email: String(邮箱,唯一,格式校验)
│   ├── department: Department(关联部门实体)
│   ├── status: Enum(在职/离职/试用)
│   └── created_at: DateTime(创建时间,自动填充)
└── 关系
    ├── 多对一:Employee → Department
    └── 一对多:Employee → LeaveRecord(请假记录)

自动生成

  • 数据库表(DDL)
  • CRUD API(REST)
  • 数据验证逻辑
  • 基础 CRUD 页面(可选)

数据权限

数据权限模型
├── 行级权限(Row-Level Security)
│   └── 示例:员工只能看自己部门的数据
│   └── 配置:WHERE department_id = ${currentUser.departmentId}
└── 列级权限(Column-Level Security)
    └── 示例:普通员工看不到薪资字段
    └── 配置:salary 字段仅 HR 角色可见

前端设计器

组件体系

组件分类(100+ 组件)
├── 基础组件
│   ├── 文本、图片、图标
│   ├── 按钮、链接
│   └── 分割线、空白
├── 表单组件
│   ├── 输入框、文本域
│   ├── 下拉选择、多选
│   ├── 日期选择器
│   ├── 文件上传
│   └── 富文本编辑器
├── 数据展示
│   ├── 表格(支持排序、筛选、分页)
│   ├── 列表
│   ├── 卡片
│   └── 图表(折线、柱状、饼图)
├── 导航组件
│   ├── 菜单、面包屑
│   ├── 标签页
│   └── 步骤条
└── 高级组件
    ├── 树形控件
    ├── 甘特图
    └── 地图

页面布局

布局方式
├── 栅格布局(12 列栅格系统)
├── 弹性布局(Flexbox)
├── 绝对定位(自由布局)
└── 响应式(PC/平板/手机自适应)

逻辑编排

事件处理

事件 → 动作链
按钮点击

[动作1] 表单验证
    ↓(验证通过)
[动作2] 调用 API(保存数据)
    ↓(成功)
[动作3] 显示成功提示

[动作4] 跳转到列表页
    ↓(失败)
[动作5] 显示错误信息

表达式引擎

支持在任意属性中使用表达式:

javascript
// 条件显示(按钮只有管理员可见)
visible: currentUser.role === 'admin'

// 动态样式(金额为负数时显示红色)
style.color: record.amount < 0 ? 'red' : 'green'

// 计算字段(含税金额)
value: (price * 1.13).toFixed(2)

// 数据过滤(只显示本部门数据)
filter: { departmentId: currentUser.departmentId }

API 集成

外部 API 集成配置
├── 请求配置
│   ├── URL:https://api.example.com/users
│   ├── Method:GET / POST / PUT / DELETE
│   ├── Headers:Authorization: Bearer ${token}
│   └── Body:{ name: formData.name, email: formData.email }
├── 响应处理
│   ├── 成功:data = response.data.list
│   └── 失败:showError(response.message)
└── 缓存配置
    └── 缓存时间:5 分钟

部署架构

SaaS 部署

用户浏览器 → CDN → CodeWave 前端
                 → CodeWave API 服务 → 用户数据库(隔离)

私有化部署

客户内网
├── Nginx(反向代理)
├── CodeWave 设计器(Docker)
├── CodeWave 运行时(Docker)
├── MySQL(元数据 + 应用数据)
└── Redis(缓存、会话)

最小配置:2 台服务器(4C8G)
推荐配置:3 台服务器(8C16G)

网易智企产品解决方案知识库