Files
soul-yongping/开发文档/2、架构/系统架构.md
2026-02-09 15:09:29 +08:00

79 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 系统架构
**我是卡若。**
架构不是为了画图好看,是为了**省事**和**赚钱**。
我们的架构设计,核心围绕两个字:**分离**。
- 内容和代码分离。
- 前端和后端分离已落地soul-api + soul-admin + 小程序)。
- 静态和动态分离。
## 1. 架构全景图(当前)
\`\`\`mermaid
graph TD
subgraph "内容生产 (Content)"
Typora[本地写作] --> Git[Git 仓库]
Git --> AutoSync[自动同步]
end
subgraph "后端 (soul-api - Go)"
API[Gin API /api/*]
API --> GORM[GORM]
GORM --> MySQL[(MySQL)]
AutoSync --> FileSys[文件/配置]
FileSys --> API
end
subgraph "前端"
Admin[soul-admin React+Vite]
Mini[微信小程序]
Admin --> API
Mini --> API
end
subgraph "用户触达"
Mini --> Wechat[微信]
Admin --> Browser[浏览器]
end
\`\`\`
## 2. 当前项目分工
| 层级 | 项目 | 技术 | 说明 |
|------|------|------|------|
| **后端** | soul-api | Go 1.25 + Gin + GORM + MySQL | 提供全部 `/api/*`,路径与现网一致,响应 camelCase |
| **管理端** | soul-admin | React 18 + Vite 6 + TS + Tailwind + Radix UI | SPA`VITE_API_BASE_URL` 指向 soul-api |
| **C 端** | miniprogram | 微信小程序原生 | 阅读、购买、分销、提现,请求/响应 camelCase |
| **备用** | next-project | Next.js | 原单体,可保留 app/api 过渡或逐步下线 |
## 3. 核心设计理念
### 3.1 “内容即产品”
核心资产是内容(书籍章节、配置)。文章用 Markdown/数据库存Git 或脚本同步,安全可控。
### 3.2 前后端已分离
- **后端**soul-apiGo独立部署可单独扩容、多端复用。
- **管理端**soul-admin 纯静态 SPA部署到任意静态托管或 CDN。
- **接口契约**:路径不变,请求/响应字段统一 **camelCase**,详见 [前后端架构分离策略](前后端架构分离策略.md)。
### 3.3 极简部署
- 后端Go 二进制 + 环境变量,或 Docker 单容器。
- 管理端:`npm run build` 后部署到 Nginx/Vercel/OSS。
- 小程序:微信后台发布。宝塔/Webhook 可按需做自动拉代码。
## 4. 关键约束
1. **API 字段统一**:对外一律 camelCase`userId``createdAt`);数据库列名保持 snake_case 仅在服务端使用。
2. **本地优先**:写作与开发在本地,通过 soul-api 连接数据库。
3. **单向流动**:数据流向 `内容/配置 -> API -> 前端`;订单、用户等由 API 写库。
## 5. 详细技术栈
详见:**[技术选型与全景图](技术选型与全景图.md)**、**[前后端架构分离策略](前后端架构分离策略.md)**。
---
**总结:**
当前已实现前后端分离soul-api 负责接口与数据soul-admin 负责管理后台,小程序负责 C 端。保持接口路径与字段规范统一,便于多端对接与扩展。