Files
QTradeProgram/README_命名规范.md

260 lines
5.9 KiB
Markdown
Raw Permalink Normal View History

2026-02-25 23:01:42 +08:00
# 命名规范指南
## 概述
本文件定义了系统中文件、文件夹和类的命名规范,以确保代码的一致性和可读性。
## 命名原则
### 1. 一致性原则
- 相同类型的组件使用相同的命名模式
- 保持命名风格在整个系统中一致
- 避免混合使用不同的命名约定
### 2. 描述性原则
- 名称应清晰描述其功能或用途
- 避免使用缩写,除非是广泛接受的
- 使用完整的单词以提高可读性
### 3. 简洁性原则
- 在保持描述性的前提下尽量简洁
- 避免过长的名称
- 删除不必要的单词
## 文件夹命名规范
### 目录结构
```
Sqbase/
├── core/ # 核心系统组件
├── data_processing/ # 数据处理组件(原 data/
├── network_communication/ # 网络通信组件(原 network/
├── configuration/ # 配置管理组件(原 config/
├── utilities/ # 工具组件(原 utils/
├── common_structures/ # 通用结构(原 common/
├── interfaces/ # 接口定义
└── implementations/ # 实现文件
```
### 文件夹命名规则
- 使用小写字母
- 使用下划线分隔单词
- 名称应明确描述目录内容
- 避免使用缩写
## 文件命名规范
### 头文件 (.h)
- 使用 PascalCase大驼峰命名法
- 反映类名或主要功能
- 避免使用前缀,除非是框架要求
**示例:**
- `DataBuffer.h`(原 `qdatabuffer.h`
- `FaultToleranceManager.h`(原 `qfaulttolerance.h`
- `ConfigurationManager.h`(原 `qconfigmanager.h`
### 实现文件 (.cpp)
- 与对应的头文件同名
- 使用相同的命名约定
**示例:**
- `DataBuffer.cpp`
- `FaultToleranceManager.cpp`
- `ConfigurationManager.cpp`
### 其他文件
- 文档文件:使用描述性名称和下划线分隔
- 配置文件:使用小写和下划线
- 资源文件:使用有意义的名称
## 类命名规范
### 类名
- 使用 PascalCase大驼峰命名法
- 使用名词或名词短语
- 反映类的职责和功能
- 避免使用前缀,除非是框架要求
**示例:**
- `DataBuffer`(原 `QDataBuffer`
- `FaultToleranceManager`(原 `QFaultTolerance`
- `ConfigurationManager`(原 `QConfigManager`
### 接口类
- 使用描述性名称
- 可以以 "Interface" 或 "I" 开头(可选)
**示例:**
- `IDataProcessor`
- `NetworkInterface`
### 抽象基类
- 可以以 "Base" 或 "Abstract" 开头
**示例:**
- `AbstractDataHandler`
- `BaseConnection`
## 方法命名规范
### 方法名
- 使用 camelCase小驼峰命名法
- 使用动词或动词短语
- 清晰描述方法的操作
**示例:**
- `initializeSystem()`
- `processOrderData()`
- `validateConfiguration()`
### 访问器方法
- 获取方法:`getProperty()` 或直接 `property()`
- 设置方法:`setProperty(value)`
- 布尔方法:`isValid()`, `hasData()`, `canProcess()`
## 变量命名规范
### 成员变量
- 使用 camelCase小驼峰命名法
- 可以添加 `m_` 前缀以区分成员变量
**示例:**
- `m_bufferSize`
- `m_connectionState`
- `m_dataProcessor`
### 局部变量
- 使用 camelCase小驼峰命名法
- 描述变量的用途
**示例:**
- `currentPacket`
- `connectionStatus`
- `processedData`
### 常量
- 使用 UPPER_CASE全大写
- 使用下划线分隔单词
**示例:**
- `MAX_BUFFER_SIZE`
- `DEFAULT_TIMEOUT_MS`
- `SYSTEM_VERSION`
## 枚举和结构体命名规范
### 枚举类型
- 使用 PascalCase大驼峰命名法
- 枚举值使用 PascalCase
**示例:**
```cpp
enum class ConnectionState {
Disconnected,
Connecting,
Connected,
Degraded
};
```
### 结构体
- 使用 PascalCase大驼峰命名法
- 反映结构体的用途
**示例:**
```cpp
struct ConnectionConfig {
std::string serverAddress;
int port;
int timeoutMs;
};
```
## 命名空间规范
### 命名空间
- 使用小写字母
- 反映模块或功能区域
**示例:**
- `trading_core`
- `data_processing`
- `network_communication`
## 具体重命名方案
### 核心系统组件
- `QTradeCore``TradingCore`
- `qtradecore.h``TradingCore.h`
### 数据处理组件
- `QDataBuffer``DataBuffer`
- `QDataQuality``DataQualityValidator`
- `QOrderProcessor``OrderProcessor`
- `QBigOrderManager``BigOrderManager`
### 网络通信组件
- `QFaultTolerance``FaultToleranceManager`
- `QSubscriptionManager``SubscriptionManager`
### 配置管理组件
- `QConfigManager``ConfigurationManager`
- `QLogManager``LogManager`
### 工具组件
- `QEventBus``EventBus`
- `ObjectPool``ObjectPool`(保持不变)
- `ordertypedelegate.h``OrderTypeDelegate.h`
## 迁移计划
### 第一阶段:创建新命名文件
1. 使用新命名创建所有文件
2. 保持旧文件暂时存在
3. 更新包含关系
### 第二阶段:更新引用
1. 更新所有包含新文件的代码
2. 验证编译通过
### 第三阶段:清理旧文件
1. 删除旧命名文件
2. 更新构建配置
## 最佳实践
### 1. 可读性优先
- 选择最易理解的名称
- 避免技术术语,除非必要
- 考虑团队成员的背景
### 2. 保持一致性
- 在整个代码库中坚持相同的约定
- 定期进行代码审查以确保一致性
- 使用代码格式化工具
### 3. 文档化
- 为不明显的命名添加注释
- 维护命名约定文档
- 为新团队成员提供指导
### 4. 渐进式改进
- 不要一次性重命名所有内容
- 优先处理最常访问的组件
- 确保向后兼容性
## 工具支持
### 代码格式化
- 使用 clang-format 或类似工具
- 配置一致的格式化规则
- 在构建过程中自动格式化
### 静态分析
- 使用静态分析工具检查命名
- 设置命名约定检查规则
- 集成到 CI/CD 流程中
通过遵循这些命名规范,我们将创建一个更加一致、可读和可维护的代码库。