Files
pig-farm-controller/bmad/source-tree-analysis-zh.md
2025-11-01 19:22:39 +08:00

2.7 KiB
Raw Blame History

源代码树分析 - 主模块

本文档提供了项目源代码结构的带注释概述,重点关注包含核心应用程序逻辑的 internal/ 目录。

internal/
├── app/                  # 应用层:处理 HTTP 请求、DTO 和协调服务。
│   ├── api/              # API 定义和路由 (Echo 框架)。
│   ├── controller/       # 各领域(用户、设备、计划、猪场、监控)的请求处理器。
│   │   ├── device/       # 设备相关的 API 控制器。
│   │   ├── management/   # 管理相关的 API 控制器(例如,猪群批次)。
│   │   ├── monitor/      # 监控相关的 API 控制器。
│   │   ├── plan/         # 计划相关的 API 控制器。
│   │   └── user/         # 用户相关的 API 控制器。
│   ├── dto/              # 数据传输对象API 的请求/响应模型。
│   ├── middleware/       # HTTP 中间件(例如,身份验证、审计日志)。
│   ├── service/          # 应用服务:业务逻辑协调。
│   └── webhook/          # Webhook 处理器例如ChirpStack。
├── core/                 # 核心应用组件:初始化和数据设置。
│   ├── application.go    # 主应用程序设置。
│   ├── component_initializers.go # 初始化各种应用程序组件。
│   └── data_initializer.go # 初始化核心数据。
├── domain/               # 领域层:业务逻辑和实体。
│   ├── audit/            # 审计相关的领域服务。
│   ├── device/           # 设备相关的领域服务。
│   ├── notify/           # 通知领域服务。
│   ├── pig/              # 猪只和猪群批次相关的领域服务。
│   ├── scheduler/        # 调度领域服务。
│   ├── task/             # 任务相关的领域服务。
│   └── token/            # 令牌管理领域服务。
└── infra/                # 基础设施层:外部关注点(数据库、日志、配置、外部 API。
    ├── config/           # 配置管理。
    ├── database/         # 数据库连接和 ORM 设置 (PostgreSQL, SQLite)。
    ├── logs/             # 日志工具。
    ├── models/           # GORM 模型(数据库模式定义)。
    ├── notify/           # 通知实现Lark、SMTP、微信。
    ├── repository/       # 数据仓库:数据库交互逻辑。
    ├── transport/        # 外部通信例如LoRaWAN ChirpStack。
    │   ├── lora/         # LoRaWAN 特定传输。
    │   └── proto/        # 协议缓冲区定义。
    └── utils/            # 通用工具。