bindbox-game/.trae/documents/全面代码清理与优化计划.md
邹方成 45815bfb7d chore: 清理无用文件与优化代码结构
refactor(utils): 修复密码哈希比较逻辑错误
feat(user): 新增按状态筛选优惠券接口
docs: 添加虚拟发货与任务中心相关文档
fix(wechat): 修正Code2Session上下文传递问题
test: 补充订单折扣与积分转换测试用例
build: 更新配置文件与构建脚本
style: 清理多余的空行与注释
2025-12-18 17:35:55 +08:00

4.4 KiB
Raw Blame History

目标

  • 全面清理未用代码、注释废弃块、空文件与无用测试

  • 识别并重构重复代码重复率≥80%

  • 保持现有功能稳定,构建与测试全部通过

  • 输出对比报告与文档更新

范围

  • 后端:internal/**cmd/**migrations/**

  • 前端管理:web/admin/**Vue/TS/样式与公共组件)

  • 通用资源:docs/**、脚手架与配置(不更改生产配置)

清理策略与工具

  • 未用与死代码检测

    • Gogolangci-lintunused、deadcode、revivego vet

    • TS/Vuetsc --noEmit(类型与未用导出)、eslintno-unused-vars/no-dead-code

  • 注释废弃块识别

    • 规则Grep 检索注释中出现代码结构(func|class|export|<template>),人工确认后删除
  • 空文件/无用测试

    • Glob + Read 识别空/仅注释文件;移除未被引用的测试(无匹配运行入口或全跳过)
  • 重复代码检测

    • 跨语言:jscpdVue/TS/GoduplGo

    • 阈值:重复度 ≥ 80% 且行数 ≥ 20 行

  • 重构原则

    • 后端:抽取到 internal/pkg/common 或现有包的工具单元;避免交叉包循环依赖

    • 前端:抽取到 web/admin/src/components/commonutils,保持现有风格与命名

执行步骤

  1. 基线采集
  • 读取项目结构与关键模块,记录当前构建状态(不修改)

  • 运行只读分析:语义搜索/正则/Grep收集疑似未用项、注释废弃块、空文件、重复片段清单

  1. 未用代码清理
  • 逐文件比对引用关系Grep/语义搜索),将“未被任何入口引用”标记为候选

  • 生成候选清单(含文件路径与符号名),按模块批次删除;每次删除后执行增量构建验证

  1. 注释废弃块删除
  • 扫描 ///* */<!-- --> 中含可编译结构的片段,人工确认后删除

  • 对 SFC 中注释的 <template>/<script>/<style> 片段严谨处理,避免结构破坏

  1. 空文件与无用测试
  • 移除 0 字节/仅注释文件;对测试:无法被测试运行器加载、或所有用例被跳过的文件移除
  1. 重复代码重构
  • 跑相似度分析,生成报告(位置、重复度、建议合并点)

  • 抽取公共方法/组件,替换调用方;保持 API 不变,变更点最小化

  1. 依赖与引用更新
  • 后端:修复 import前端修复路径别名与组件引用保证编译通过
  1. 验证与回归
  • 构建验证:go buildtsc --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_代码清理.mdTASK_代码清理.md

  • 执行与评估:docs/代码清理/ACCEPTANCE_代码清理.mdFINAL_代码清理.mdTODO_代码清理.md

后续执行说明

  • 获批后:按上述步骤使用只读扫描确定候选清单→分批次提交清理补丁→每批次构建与回归验证→汇总报告与文档更新。