Bilup GUI 架构
本文档将深入介绍 Bilup 的 GUI 架构、设计模式和核心系统。
系统架构
高级概述
Bilup 遵循分层架构模式,具有清晰的关注点分离:
┌─────────────────────────────────────────────────────────────┐
│ Presentation Layer │
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐│
│ │ React Components │ │ CSS Modules │ │ Theme Engine ││
│ │ (UI 元素) │ │ (样式) │ │ (外观) ││
│ └─────────────────┘ └─────────────────┘ └─────────────────┘│
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ Business Logic Layer │
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐│
│ │ Containers │ │ HOCs │ │ Middleware ││
│ │ (数据绑定) │ │ (横切关注点) │ │ (副作用) ││
│ └─────────────────┘ └─────────────────┘ └─────────────────┘│
└─────────────────────────────────────────────────────────────┘
┌────────── ───────────────────────────────────────────────────┐
│ State Management Layer │
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐│
│ │ Redux Store │ │ Reducers │ │ Actions ││
│ │ (全局状态) │ │ (状态逻辑) │ │ (状态更改) ││
│ └─────────────────┘ └─────────────────┘ └─────────────────┘│
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ Engine Layer │
│ ┌──────── ─────────┐ ┌─────────────────┐ ┌─────────────────┐│
│ │ Scratch VM │ │ Scratch Render │ │ Scratch Blocks ││
│ │ (运行时) │ │ (图形) │ │ (编辑器) ││
│ └─────────────────┘ └─────────────────┘ └─────────────────┘│
└─────────────────────────────────────────────────────────────┘
核心设计原则
- 单向数据流 - 数据向下流动,事件向上流动
- 组件组合 - 小而可重用的组件
- 关注点分离 - 清晰的职责边界
- 不可变状态 - 可预测的状态变更
- 声明式 UI - 描述 UI 应该是什么样子
- 性能优先 - 优化渲染和更新