Files
a-share-analysis/docs/features/FEAT-MO-001-market-overview/review/code-review.md
T

4.1 KiB
Raw Blame History

代码 Review

首轮独立 Review

  • 对比基线:8261948
  • 审查提交:ff8ada8
  • 结论:Ready to merge: No

首轮发现及处置:

  1. 畸形 UpHome/DownHome 被折算为零并误标 fresh:改为有限、非负且成对校验,无效市场整体排除并按有效市场数返回 fresh/partial/unavailable。
  2. 成交额缺市场或交易日错位仍误标三市实时数据:只汇总非负金额和一致交易日,公开 marketCount、tradeDate、previousTradeDate,缺市场返回 partial。
  3. 空板块目录误标 fresh:一级行业为空时直接返回 unavailable,且只保留存在相邻两日收盘价和有效涨跌幅的板块。
  4. 前端隐藏 partial/delayed 警告:宽度、板块和成交额面板均展示非 fresh 状态提示,并展示板块与成交额真实交易日期。
  5. PRD、发布说明和 Review 文档残留旧口径:已同步更正为真实 TDX 宽度、一级行业与成交额趋势口径,主力净流入和新闻仍明确延期。
  6. 异常分支测试不足:新增畸形宽度、部分市场、错位交易日、空行业目录、额外字段隔离、前端状态提示和零变化中性色回归测试。

次要问题也已同步处理:OpenAPI required + nullable 定义、板块 DTO 额外 price 字段泄露、成交额零变化上涨色和新增映射中文口径注释。

范围

覆盖 TDX 客户端、市场概览后端模块、OpenAPI/前端契约、Axios API 封装、Vue 首屏组件和对应测试。

检查结果

  • 通过:API 按模块拆分,前端请求集中在 web/src/api/market-overview/index.ts,Vue 不直连 TDX。
  • 通过:真实指数和摘要字段经过 DTO/映射;桥接层未提供的方法返回结构化 unavailable,没有模拟数据冒充。
  • 通过:模块并行加载且独立处理异常;TDX 请求有固定回环地址、超时、响应大小限制和错误脱敏。
  • 通过:未将密码、令牌、行情原始载荷或生产数据写入代码、文档和日志。
  • 通过:E2E 测试夹具显式声明回环 TDX 配置但不要求 TDX 可达,避免测试环境绕过正式配置校验。

安全与残余风险

  • TDX 只读边界固定为回环地址,客户端限制超时和响应大小并脱敏异常;未接入交易、AI 密钥、数据库写入或生产数据。
  • 残余风险是 TDX 桥接方法覆盖不全、市场数据授权和生产 7×24 稳定性尚未验证,已在需求和回退说明中标明。

GitNexus 与同步修改

开发前已保存 GitNexus 影响计划。早期提交曾映射 11 条执行流并标记 high;49f6be9 修复提交的 staged 检测映射 20 个文件、67 个符号、16 条执行流并标记 critical。critical 来自市场概览核心服务、TDX 映射和前端数据面板,不是未知跨业务扩散;未发现数据库、Redis、RocketMQ、Scheduler、Worker、认证或部署调用方。当前环境未暴露 GitNexus MCP 变更检测工具,已使用同版本 CLI 和 worktree 绝对路径保留证据。

性能与资源影响

  • 五个模块并行请求,单请求超时并限制 1 MiB 响应;市场宽度并行增加一次单指数、单日线日期参考请求,不引入 MySQL、Redis、RocketMQ 在线负载。
  • 未进行 7×24、断线重连和生产压测;主力净流入、盘中新闻、权威交易日历及详情页仍待独立功能。
  • ESLint 对 Vue 单文件组件仅保留 35 条既有风格 warning,无 error;格式、类型和构建门禁均通过。

二次独立 Review

  • 审查范围:ff8ada8..49f6be9
  • 结论:Ready to merge: No
  • Critical:无。
  • Important:宽度仍接受小数/十六进制等非计数值;成交额以首个市场日期为锚;板块跨交易日混排仍标 fresh;后端没有真实 delayed 路径。
  • Minor:GitNexus 风险/执行流和 TDX 已接入范围存在旧口径。

上述问题已按 TDD 增加失败用例后修复:宽度只接受十进制非负安全整数;指数/板块只保留最新交易日;成交额选择最新有效日期对;四个后端日行情路径均具备 delayed 判定,宽度使用同批指数日期参考。修复后等待再次独立 Review。

最终结论:pending