refactor(utils): 修复密码哈希比较逻辑错误 feat(user): 新增按状态筛选优惠券接口 docs: 添加虚拟发货与任务中心相关文档 fix(wechat): 修正Code2Session上下文传递问题 test: 补充订单折扣与积分转换测试用例 build: 更新配置文件与构建脚本 style: 清理多余的空行与注释
4.4 KiB
目标
-
全面清理未用代码、注释废弃块、空文件与无用测试
-
识别并重构重复代码(重复率≥80%)
-
保持现有功能稳定,构建与测试全部通过
-
输出对比报告与文档更新
范围
-
后端:
internal/**、cmd/**、migrations/** -
前端管理:
web/admin/**(Vue/TS/样式与公共组件) -
通用资源:
docs/**、脚手架与配置(不更改生产配置)
清理策略与工具
-
未用与死代码检测
-
Go:
golangci-lint(unused、deadcode、revive)、go vet -
TS/Vue:
tsc --noEmit(类型与未用导出)、eslint(no-unused-vars/no-dead-code)
-
-
注释废弃块识别
- 规则:Grep 检索注释中出现代码结构(
func|class|export|<template>),人工确认后删除
- 规则:Grep 检索注释中出现代码结构(
-
空文件/无用测试
- Glob + Read 识别空/仅注释文件;移除未被引用的测试(无匹配运行入口或全跳过)
-
重复代码检测
-
跨语言:
jscpd(Vue/TS/Go)或dupl(Go) -
阈值:重复度 ≥ 80% 且行数 ≥ 20 行
-
-
重构原则
-
后端:抽取到
internal/pkg/common或现有包的工具单元;避免交叉包循环依赖 -
前端:抽取到
web/admin/src/components/common或utils,保持现有风格与命名
-
执行步骤
- 基线采集
-
读取项目结构与关键模块,记录当前构建状态(不修改)
-
运行只读分析:语义搜索/正则/Grep,收集疑似未用项、注释废弃块、空文件、重复片段清单
- 未用代码清理
-
逐文件比对引用关系(Grep/语义搜索),将“未被任何入口引用”标记为候选
-
生成候选清单(含文件路径与符号名),按模块批次删除;每次删除后执行增量构建验证
- 注释废弃块删除
-
扫描
//、/* */、<!-- -->中含可编译结构的片段,人工确认后删除 -
对 SFC 中注释的
<template>/<script>/<style>片段严谨处理,避免结构破坏
- 空文件与无用测试
- 移除 0 字节/仅注释文件;对测试:无法被测试运行器加载、或所有用例被跳过的文件移除
- 重复代码重构
-
跑相似度分析,生成报告(位置、重复度、建议合并点)
-
抽取公共方法/组件,替换调用方;保持 API 不变,变更点最小化
- 依赖与引用更新
- 后端:修复 import;前端:修复路径别名与组件引用;保证编译通过
- 验证与回归
-
构建验证:
go build、tsc --noEmit、前端npm run build(或等价) -
单/集成测试:运行现有测试;若缺失,补最小冒烟测试(关键模块)
-
功能回归:登录、活动管理、一番赏映射、承诺生成/摘要、开奖与订单查询
安全保障
-
分批次清理,每批次后执行构建与核心用例回归
-
只删除“未引用/重复/注释废弃/空”的候选;核心路径(API、路由、策略、DAO、视图)谨慎处理
-
所有变更均记录到临时报告与文档
交付物
-
代码对比报告:删除/变更列表(文件路径、符号名、原因)
-
重复代码检测报告:重复片段与重构前后引用图
-
验收文档:构建输出、测试结果、回归清单
-
文档更新:在
docs/代码清理目录建立说明与进度记录
本次已执行清理项(2025-12-08)
- 移除抽奖策略注册表冗余(保留接口类型),不影响默认策略与一番赏流程
- 删除 Guild 相关 DAO/Model 生成文件(项目内无引用,运行不受影响)
- 移除管理端 batch_users 接口与路由挂载(前端无调用)
- 移除管理端 IssueUserToken 路由挂载(前端无调用;代码文件暂保留为未引用状态)
- 构建验证:
go build ./...通过;go test ./...存在历史用例失败(外部依赖与软删列缺失),与本次变更无关
文档与规范对齐
-
创建:
docs/代码清理/ALIGNMENT_代码清理.md(范围/边界/不确定点) -
共识:
docs/代码清理/CONSENSUS_代码清理.md(验收标准与方案) -
设计与任务拆分:
docs/代码清理/DESIGN_代码清理.md、TASK_代码清理.md -
执行与评估:
docs/代码清理/ACCEPTANCE_代码清理.md、FINAL_代码清理.md、TODO_代码清理.md
后续执行说明
- 获批后:按上述步骤使用只读扫描确定候选清单→分批次提交清理补丁→每批次构建与回归验证→汇总报告与文档更新。