54 lines
1.9 KiB
Markdown
54 lines
1.9 KiB
Markdown
---
|
||
name: project-structure
|
||
description: 工程目录与构建规范。用于本仓库跨模块改动时,保证边缘端与云端目录职责清晰、构建产物结构一致、部署方式一致。
|
||
---
|
||
|
||
# 工程结构规范
|
||
|
||
## 顶层职责
|
||
|
||
- `collector/`:边缘采集进程
|
||
- `configurator/`:边缘配置服务
|
||
- `cloud_server/`:云端服务
|
||
- `frontend/config_app/`:边缘前端
|
||
- `frontend/cloud_app/`:云端前端
|
||
- `foundation/`:共享 C++ 基础库
|
||
- `docs/`:通用技术文档
|
||
|
||
## 构建与产物
|
||
|
||
- 各后端模块使用 `build/` 作为构建目录
|
||
- 打包输出到 `runtime/`
|
||
- 原则:`build/` 与对应 `runtime/` 目录结构保持一致,避免运行时路径偏差
|
||
|
||
## 脚本职责
|
||
|
||
- `build.sh`:编译 + 前端构建 + 资源同步
|
||
- `run.sh`:构建后启动(必要时先停旧进程)
|
||
- `package.sh`:整体打包到 `runtime/`
|
||
- `run_collector_tests.sh`:采集端 collector 测试入口(unit / ci / all)
|
||
- `run_configurator_tests.sh`:配置端 configurator 测试入口(unit / ci / all)
|
||
- `run_cloud_tests.sh`:云端 cloud_server 测试入口(unit / 集成 / 压测 / 长稳)
|
||
|
||
## 部署约束
|
||
|
||
- 开发环境:模块独立运行、独立调试
|
||
- 生产环境:使用打包产物 + systemd 管理
|
||
- 不引入额外“总控进程”替代现有部署方式
|
||
|
||
## 命名约定
|
||
|
||
- 目录:`snake_case`
|
||
- 前端组件目录:`PascalCase`
|
||
- 文档:业务文档可中文命名,标准文件按通用约定
|
||
|
||
## 测试约定
|
||
|
||
- 每个后端子工程有独立的 `run_<子工程>_tests.sh` 脚本入口
|
||
- 各后端子工程的单元测试放在 `子工程/tests/unit/`
|
||
- 子工程相关的集成测试/压测/E2E 放在 `子工程/tests/{integration,benchmark,e2e}/`
|
||
- GTest 公共基础设施位于 `foundation/cmake/EdgeCollectorTesting.cmake`
|
||
- 测试概览文档位于 `docs/testing.md`
|
||
- 详细测试文档位于各子工程 `tests/` 目录下
|
||
|