Files
WCTDataMiner/docs/architecture/模块划分.md

6.9 KiB
Raw Permalink Blame History

模块划分

所属模块:架构概览


1. 模块总览

┌─────────────────────────────────────────────────────────────┐
│                        CLI Entry Point                       │
│                    (Program.cs / System.CommandLine)         │
├─────────────────────────────────────────────────────────────┤
│                      Service Layer                           │
├─────────────────────────────────────────────────────────────┤
│  ParseService  │  ScenarioService  │  DimensionService  │  ThresholdCalc    │
├─────────────────────────────────────────────────────────────┤
│                      Parser Layer                            │
├─────────────────────────────────────────────────────────────┤
│  QfodParser  │  PlossParser  │  FileNameParser              │
├─────────────────────────────────────────────────────────────┤
│                       Data Layer                             │
├─────────────────────────────────────────────────────────────┤
│  Models  │  WctMinerDbContext  │  IDbContextFactory         │
├─────────────────────────────────────────────────────────────┤
│                      Infrastructure                          │
├─────────────────────────────────────────────────────────────┤
│  Configuration  │  Serilog  │  AppSettings                  │
└─────────────────────────────────────────────────────────────┘

2. 模块职责

模块名 职责 依赖模块
CLI Entry 接收命令行参数、调度解析流程 ParseService, Infrastructure
ParseService 协调解析流程、批量写入、场景关联 Parser Layer, ScenarioService, DbContext
ScenarioService 创建/查询测试场景,解析文件名获取场景信息 DimensionService, DbContext
DimensionService 维度表 CRUD获取或创建维度记录 DbContext
FileNameParser 解析文件名提取场景信息面板、版本、RX类型等
LogFileReader 读取日志文件、行过滤、文件遍历
QfodParser 解析 Qfod 格式日志,返回 QfodRecord
PlossParser 解析 Ploss 格式日志,返回 PlossRecord
Models 定义数据实体结构(维度表 + 事实表)
WctMinerDbContext EF Core 数据库上下文 Models, Configurations
Configuration 加载配置文件
Serilog 结构化日志输出(含解析错误日志)
ThresholdCalculator 根据 RxPower 计算动态阈值

3. 分层架构

3.1 分层定义

层级 职责 允许调用
CLI Entry 接收参数、流程调度、结果输出 Service, Infrastructure
Service 协调解析流程、场景管理、维度管理、批量写入 Parser, Data, Infrastructure
Parser 日志解析、文件名解析、数据提取
Data 数据持久化、DbContext 管理、实体配置 Infrastructure
Infrastructure 配置、日志

3.2 依赖规则

  • 上层可调用下层
  • 下层不可调用上层
  • Parser 之间不可互相调用(独立解析器)
  • Service 层协调 Parser 和 Data 层
  • 解析错误通过 Serilog 记录,不存入业务数据库

4. 模块依赖图

graph TD
    CLI[CLI Entry] --> PS[ParseService]
    CLI --> Serilog

    PS --> SS[ScenarioService]
    PS --> QP[QfodParser]
    PS --> PP[PlossParser]
    PS --> DBM[WctMinerDbContext]
    PS --> Serilog

    SS --> DS[DimensionService]
    SS --> FNP[FileNameParser]
    SS --> DBM

    DS --> DBM

    QP --> Serilog
    PP --> Serilog
    FNP --> Serilog

    DBM --> Models[Models]
    DBM --> Configs[Configurations]

    subgraph Parser Layer
        QP
        PP
        FNP
    end

    subgraph Data Layer
        DBM
        Models
        Configs
    end

    subgraph Infrastructure
        Serilog
    end

    subgraph Service Layer
        PS
        SS
        DS
    end

5. 目录结构

src/WCTDataMiner/
├── Parsers/
│   ├── IParser.cs
│   ├── QfodParser.cs
│   ├── PlossParser.cs
│   ├── FileNameParser.cs          # 解析文件名获取场景信息Parser Layer
│   └── LogFileReader.cs           # 读取日志文件(可选)
├── Models/
│   ├── TxPanel.cs                 # TX面板维度
│   ├── TxHardware.cs              # TX硬件版本维度
│   ├── TxSoftware.cs              # TX软件版本维度
│   ├── RxType.cs                  # RX类型维度
│   ├── TestScenario.cs            # 测试场景
│   ├── QfodRecord.cs              # Qfod记录
│   └── PlossRecord.cs             # Ploss记录
├── Data/
│   ├── WctMinerDbContext.cs
│   ├── IDbContextFactory.cs
│   └── Configurations/            # IEntityTypeConfiguration 配置类
│       ├── TxPanelConfiguration.cs
│       ├── TxHardwareConfiguration.cs
│       ├── TxSoftwareConfiguration.cs
│       ├── RxTypeConfiguration.cs
│       ├── TestScenarioConfiguration.cs
│       ├── QfodRecordConfiguration.cs
│       └── PlossRecordConfiguration.cs
├── Services/
│   ├── ParseService.cs            # 解析流程协调
│   ├── ScenarioService.cs         # 场景创建/查询
│   ├── DimensionService.cs        # 维度表管理
│   └── ThresholdCalculator.cs     # 阈值计算
├── Configuration/
│   ├── AppSettings.cs
│   └── appsettings.json
├── Commands/
│   ├── ParseCommand.cs
│   ├── StatsCommand.cs
│   ├── ExportCommand.cs
│   └── CleanCommand.cs
└── Program.cs