5.0 KiB
5.0 KiB
代码修改需求审查规则
本规则定义了代码修改前的需求审查流程,确保修改工作符合项目需求,避免引入不必要的变更。
规则目的
- 规范代码修改流程,确保修改符合需求
- 避免在修改过程中引入与任务无关的功能变更
- 提高代码修改的可控性和可追溯性
修改前检查
需求文件检查
在修改任何代码文件前,必须执行以下检查:
-
检查需求md文件:
- 检查目标模块目录下是否存在需求md文件
- 匹配模式:
*.md或requirement*.md - 常见命名:
requirement.md、requirement_xxx.md、模块名_requirement.md
-
阅读并理解需求:
- 如果存在需求md文件,必须先阅读并理解其内容
- 明确任务目标和修改范围
- 记录关键需求点
-
不存在需求文件:
- 如果不存在需求md文件,继续正常修改流程
- 仍需与用户确认修改范围和目标
检查示例
import os
def check_requirement_file(module_path):
"""检查模块目录下是否存在需求md文件"""
md_files = [f for f in os.listdir(module_path)
if f.endswith('.md') or f.lower().startswith('requirement')]
if md_files:
print(f"发现需求文件: {md_files}")
return True
return False
# 推荐做法
def before_modify_code(module_path):
"""修改代码前的检查流程"""
if check_requirement_file(module_path):
print("请先阅读需求md文件并理解需求内容")
# 读取并分析需求文件
# 确认修改范围和目标
else:
print("未发现需求文件,继续正常流程")
修改范围控制
严格遵守需求范围
- 只修改任务要求的功能相关代码
- 禁止修改与任务要求无关的功能代码
- 禁止在修改过程中引入意外的功能变更
范围控制原则
| 场景 | 正确做法 | 错误做法 |
|---|---|---|
| 修改函数A | 只修改函数A相关的代码 | 同时修改函数B、C |
| 添加新功能 | 在指定位置添加 | 在其他地方添加辅助功能 |
| 修复bug | 只修复目标bug | 顺便优化其他代码 |
| 重构代码 | 只重构必要部分 | 大规模重构无关模块 |
示例说明
# 任务要求:修复 get_factor 函数中的除零错误
# 正确做法:只修复除零问题,不修改其他内容
def get_factor(df, window=5):
epsilon = 1e-8 # 防止除零
result = df["close"] / (df["high"] - df["low"] + epsilon)
return result
# 错误做法:在修复过程中引入了不必要的变更
def get_factor(df, window=5):
# 不应该添加日志功能(除非需求要求)
logger.info(f"Calculating factor with window={window}")
epsilon = 1e-8
result = df["close"] / (df["high"] - df["low"] + epsilon)
# 不应该修改返回值类型(除非需求要求)
return {"factor": result, "window": window}
变更影响评估
在修改过程中,如果发现可能影响其他功能的改动:
- 暂停当前修改
- 评估影响范围
- 与用户确认:说明影响和变更原因
- 获得许可:确认是否继续修改
# 发现可能影响其他功能的示例
def modify_function():
"""修改函数时发现可能影响其他功能"""
potential_impact = True
if potential_impact:
# 暂停修改,与用户确认
print("发现可能影响其他功能的变更,请确认是否继续")
# 等待用户确认后再执行修改
例外情况
以下情况可以进行小幅调整,但需在提交前说明:
1. 语法错误和拼写问题
# 允许的修复
def caculate_factor(): # 拼写错误
return "calculated" # 修正为 calculate
# 允许
def calculate_factor():
return "calculated"
2. 代码格式化调整
# 为了代码格式化一致性可以进行格式调整
# 之前
def example_function(df,parameter1,parameter2):
result=df["col"]/(df["high"]-df["low"]+epsilon)
return result
# 之后(格式调整)
def example_function(df, parameter1, parameter2):
result = df["col"] / (df["high"] - df["low"] + epsilon)
return result
3. 明显的性能优化
# 明显的性能优化可以进行
# 优化前
def slow_calculation(df):
result = []
for i in range(len(df)):
result.append(df["close"].iloc[i] * 2)
return result
# 优化后
def fast_calculation(df):
result = df["close"] * 2
return result
提交前检查清单
在提交代码修改前,确认以下事项:
- 修改内容符合需求文件要求(如果存在)
- 没有引入与任务无关的功能变更
- 没有破坏现有功能
- 格式调整已说明
- 性能优化已说明
- 语法错误已修复
相关规则文件
- rules_index.md - 规则索引
- interaction_rules.md - 交互限制规则
- formatting.md - 代码格式化规则