refactor(utils): 修复密码哈希比较逻辑错误 feat(user): 新增按状态筛选优惠券接口 docs: 添加虚拟发货与任务中心相关文档 fix(wechat): 修正Code2Session上下文传递问题 test: 补充订单折扣与积分转换测试用例 build: 更新配置文件与构建脚本 style: 清理多余的空行与注释
128 lines
4.4 KiB
Markdown
128 lines
4.4 KiB
Markdown
## 目标
|
||
|
||
* 全面清理未用代码、注释废弃块、空文件与无用测试
|
||
|
||
* 识别并重构重复代码(重复率≥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>`),人工确认后删除
|
||
|
||
* 空文件/无用测试
|
||
|
||
* Glob + Read 识别空/仅注释文件;移除未被引用的测试(无匹配运行入口或全跳过)
|
||
|
||
* 重复代码检测
|
||
|
||
* 跨语言:`jscpd`(Vue/TS/Go)或 `dupl`(Go)
|
||
|
||
* 阈值:重复度 ≥ 80% 且行数 ≥ 20 行
|
||
|
||
* 重构原则
|
||
|
||
* 后端:抽取到 `internal/pkg/common` 或现有包的工具单元;避免交叉包循环依赖
|
||
|
||
* 前端:抽取到 `web/admin/src/components/common` 或 `utils`,保持现有风格与命名
|
||
|
||
## 执行步骤
|
||
|
||
1. 基线采集
|
||
|
||
* 读取项目结构与关键模块,记录当前构建状态(不修改)
|
||
|
||
* 运行只读分析:语义搜索/正则/Grep,收集疑似未用项、注释废弃块、空文件、重复片段清单
|
||
|
||
1. 未用代码清理
|
||
|
||
* 逐文件比对引用关系(Grep/语义搜索),将“未被任何入口引用”标记为候选
|
||
|
||
* 生成候选清单(含文件路径与符号名),按模块批次删除;每次删除后执行增量构建验证
|
||
|
||
1. 注释废弃块删除
|
||
|
||
* 扫描 `//`、`/* */`、`<!-- -->` 中含可编译结构的片段,人工确认后删除
|
||
|
||
* 对 SFC 中注释的 `<template>/<script>/<style>` 片段严谨处理,避免结构破坏
|
||
|
||
1. 空文件与无用测试
|
||
|
||
* 移除 0 字节/仅注释文件;对测试:无法被测试运行器加载、或所有用例被跳过的文件移除
|
||
|
||
1. 重复代码重构
|
||
|
||
* 跑相似度分析,生成报告(位置、重复度、建议合并点)
|
||
|
||
* 抽取公共方法/组件,替换调用方;保持 API 不变,变更点最小化
|
||
|
||
1. 依赖与引用更新
|
||
|
||
* 后端:修复 import;前端:修复路径别名与组件引用;保证编译通过
|
||
|
||
1. 验证与回归
|
||
|
||
* 构建验证:`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`
|
||
|
||
## 后续执行说明
|
||
|
||
* 获批后:按上述步骤使用只读扫描确定候选清单→分批次提交清理补丁→每批次构建与回归验证→汇总报告与文档更新。
|