架构设计¶
核心设计原则¶
- 性能优先: 最大化处理吞吐量和资源利用率
- 现代化 C++: 全面使用 C++23 标准特性
- 高内聚低耦合: 清晰的模块边界和接口设计
技术栈¶
| 领域 | 技术 | 理由 |
|---|---|---|
| 语言 | C++23 | 现代特性,性能卓越 |
| 构建 | CMake | C++ 项目标准 |
| 依赖 | Conan | 自动化第三方库管理 |
| 并发 | Intel TBB | 高性能并行计算 |
| CLI | cxxopts | 轻量级命令行解析 |
| 日志 | spdlog | 高性能日志库 |
| 测试 | GoogleTest | 功能强大的测试框架 |
架构层次¶
用户/调用者
↓
CLI 层 (src/cli/)
↓
应用命令层 (src/cli/commands/)
↓
核心库层 (include/fqtools/)
↓
实现层 (src/pipeline/, src/modules/)
1. CLI 层¶
- 入口:
src/cli/main.cpp - 职责: 参数解析、命令分发、日志初始化
- 使用: cxxopts + spdlog
2. 应用命令层¶
- 接口:
CommandInterface(command_interface.h) - 实现:
StatCommand,FilterCommand - 职责: 参数验证、业务逻辑调用
3. 核心库层¶
- 公共 API:
include/fqtools/ - 主要接口:
processing_pipeline.h:ProcessingPipelineInterfacestatistic_calculator.h:StatisticCalculatorInterfacefq.h: 聚合头文件
4. 实现层¶
- 流水线与处理:
src/processing/ - 统计:
src/statistics/ - IO:
src/io/
并发模型¶
使用 tbb::parallel_pipeline 实现高性能并行处理:
- source: 串行读取 FASTQ 记录
- processing: 并行过滤和变换
- sink: 串行写入结果
内置背压机制,自动平衡 I/O 和计算速度。
构建系统¶
采用现代 CMake 目标拆分:
依赖方向保持自下而上,确保模块化设计。