65 lines
4.4 KiB
Markdown
65 lines
4.4 KiB
Markdown
# 减法与结构审计(历史记录,不能作为成功指标)
|
||
|
||
> 用户验收确认代码量下降伴随了不可接受的产品偏差。本文件只保留作失败复盘,不得以行数减少
|
||
> 证明迁移成功。权威冻结决定见`../../../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契约。
|