Files
xiaobaifupan/next/docs/final/subtraction-audit.md
T

65 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 减法与结构审计(历史记录,不能作为成功指标)
> 用户验收确认代码量下降伴随了不可接受的产品偏差。本文件只保留作失败复盘,不得以行数减少
> 证明迁移成功。权威冻结决定见`../../../docs/migration/next失败冻结记录.md`。
## 结论
重建版运行时代码共219个源码文件、25,077行;旧版运行时代码共55个文件、61,793行。
在功能完整迁移并增加移动端后,新运行时代码减少36,716行,约59.4%。文件数量增加来自按职责拆分,
不再由`server.py``app.js``styles.css`和覆盖样式承载整个系统。
一次性迁移、备份、测试与文档不计入运行时代码比较;旧系统仍保留作回退资产,但新系统没有运行时导入。
## 唯一出口
| 能力 | 权威入口 | 审计结果 |
|---|---|---|
| 浏览器请求 | `frontend/src/shared/api/client.ts` | 全站仅此文件直接调用`fetch` |
| 外部行情 | `backend/data/gateway.py`+Provider | 业务Feature不直接访问外网 |
| LLM | `backend/llm/gateway.py` | 问师、问天、复盘助手、自定义公式共用 |
| 弹窗 | `DialogHost.vue`+UI Store | 无页面级第二套全局弹窗 |
| 设计令牌 | `frontend/src/shared/styles/tokens.css` | 主题颜色、字号、间距集中 |
| 移动规则 | `frontend/src/shared/styles/mobile.css` | 不复制移动页面或API |
| 数据演进 | `backend/database/migrations/` | 12个有序、带签名migration |
阶段15发现并删除了LLM网关对账户领域具体类的3个反向导入,改为网关内部最小Protocol;
组合根仍注入原服务,没有第二套权限或模型逻辑。基础数据层、数据库层没有反向依赖业务Feature。
## 大文件复核
章程的400行是维护预警线,不是机械拆分指标。以下超线文件均已逐项复核:
| 文件 | 行数 | 保留原因 | 必须拆分的触发条件 |
|---|---:|---|---|
| `data/providers/tushare.py` | 657 | 单一Provider的端点映射和统一传输 | 新增第二种协议或重复传输实现 |
| `data/gateway.py` | 546 | 唯一数据策略、质量门和图表规范化 | 新增非行情领域或独立生命周期 |
| `market/insights/auction.py` | 519 | 一个完整竞价确定性算法 | 新算法出现独立输入/版本/测试 |
| `market/insights/service.py` | 490 | 四类洞察的薄编排,计算已在子模块 | 任一洞察编排可独立部署/调度 |
| `data/repository.py` | 486 | 共享行情领域的版本化存取 | 出现第二数据库或跨域私有写入 |
| `data/heaven.py` | 485 | 问势专用市场输入适配 | 观气/观心开始依赖行情时 |
| `screener/repository.py` | 448 | 选股、运行和跟踪的同事务存取 | 跟踪获得独立生命周期/任务 |
| `screener/technical.py` | 434 | 纯技术因子计算 | 新因子族能形成独立输入契约 |
| `mobile.css` | 537 | 唯一跨页移动规则,按断点组织 | 出现页面冲突或超过650行 |
| 4个领域CSS | 403-415 | 单一领域且仅略超阈值 | 新增覆盖层或跨领域选择器 |
| `tools/legacy_migration.py` | 1,310 | 一次性离线适配;完整覆盖36张表和24种快照,不进入运行时 | 新增第二旧版本或需要常驻运行 |
当前强拆这些文件只会增加接口、跳转和空抽象,不能减少业务复杂度,因此未为满足行数制造目录。
## 删除与未继承
- 未复制旧`server.py``database.py``app.js`、15,465行旧样式或8,570行覆盖样式。
- 未保留用户自主LLM配置、模拟行情、公开网页参与正式计算、策略自动跟踪和手动执行盘后策略。
- 未复制旧原始因子表到新运行时;正式因子由唯一数据网关和盘后任务重建。
- 旧库36条无用户归属的内置策略由当前唯一版本化策略目录取代;历史运行结果保留,不维持第二套策略定义。
- 未引入ORM、通用CRUD、缓存框架、消息队列或第二套前端状态库。
- iFinD、Tushare、东方财富与腾讯职责固定;未做无来源标识的静默多源兜底。
## 依赖与安全
- npm生产依赖审计:0个已知漏洞。
- Python生产依赖审计:0个已知漏洞。
- 已知令牌、密码片段、私有数据目录和备份归档未进入Git。
- 生产响应增加CSP、`nosniff`、拒绝Frame、权限策略、Referrer策略和HTTPS HSTS。
- 生产静态哈希资源长期缓存,SPA入口`no-cache`API错误仍使用统一JSON契约。