Files
QTradeProgram/README_命名规范.md
2026-02-25 23:01:42 +08:00

260 lines
5.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 命名规范指南
## 概述
本文件定义了系统中文件、文件夹和类的命名规范,以确保代码的一致性和可读性。
## 命名原则
### 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 流程中
通过遵循这些命名规范,我们将创建一个更加一致、可读和可维护的代码库。