重构: App拆分10域文件+并发安全+结构化日志+依赖升级

This commit is contained in:
lxy
2026-05-16 20:45:14 +08:00
parent d17c20c579
commit 767311fc04
27 changed files with 1457 additions and 1218 deletions
+38 -4
View File
@@ -15,9 +15,43 @@
## 待处理
- [ ] ④ App 结构体拆分 — 1344 行,应拆为 FilesystemService / ProfileService / BgmService / UpdateService 等 v3 Service
- [x] ④ App 结构体拆分 — 1281行 app.go 拆为 9 个域文件:app_update/filesystem/sftp/oss/window/system/config/recycle/pdf + app_windows.go
- [ ] ⑦ `internal/api/pdf_api.go:371` SelectDirectory 改用 Wails 原生对话框 `application.Get().Dialog.OpenFile()`
- [ ] ⑧ `app.go:176-189` HWND 轮询改事件驱动 — v3 alpha 暂无对应 API,后续跟进
- [ ] ⑩ `app.go:29` Windows 专用导入 `golang.org/x/sys/windows/registry` 加构建标签拆到 `*_windows.go`
- [ ] ⑪ 全局结构化日志 — `fmt.Println` 替换为 `log/slog`,按优先级分批替换
- [ ] ⑬ `app.go:158` 更新检查 URL `https://c.1216.top/last-version.json` 移入配置
- [x] ⑩ `app.go:29` Windows 专用导入拆到 `app_windows.go`(registry/w32 包隔离)
- [x] ⑪ 全局结构化日志 — `fmt.Println/Printf` 全部替换为 `log/slog`(app.go + internal/ 共 45 处)
- [x] ⑬ `app.go` 更新检查 URL 改从 `update_config.json` 动态读取,不再硬编码
## 代码审查修复 (2026-05-16)
> 基于 App 拆分后全量审查,17 项问题已修复 15 项
### 已修复
- [x] 🔴① app_windows.go 添加 `//go:build windows` 构建标签
- [x] 🔴② app_windows.go 移除 `fallbackName` 死参数
- [x] 🔴③ initModulesByConfig 复用 initFilesystemModule,消除重复初始化逻辑
- [x] 🔴④ WindowToggleAlwaysOnTop 的 isAlwaysOnTop 修改加 mu 锁保护
- [x] 🟡⑤ GetEnvVars 从 app_filesystem.go 移至 app_system.go(归属修正)
- [x] 🟡⑥ GetAuditLogs 从 app_config.go 移至 app_filesystem.go(归属修正)
- [x] 🟡⑦ BgmGetPlaylist 处理 db.Find 错误
- [x] 🟡⑧ LoadConnectionProfiles 处理 json.Unmarshal 错误
- [x] 🟡⑨ startAutoUpdateCheck 改用 requireUpdateAPI 统一加锁
- [x] 🟡⑩ startAutoUpdateCheck 配置读取失败添加 slog.Warn 日志
- [x] 🟡⑪ MigrateTabConfig 错误从 `_ =` 改为 slog.Warn
- [x] 🟡⑫ app_recycle.go 移除空 import 块
- [x] ⚪⑭ OssConnect 补充 godoc 注释
- [x] ⚪⑮ EmitEvent 闭包提取为 app.emitEvent 方法,消除重复
## Bug 修复 (2026-05-16)
- [x] 🔴 预览状态级联失败: `clearContent()` 未重置 `isBinaryFile`,打开二进制文件后所有图片/视频预览失效
- [x] 🔴 Tab 切换状态不同步: 跨服务器 Tab 切换时面包屑和文件列表未更新
- [x] 🟡 AsyncCodeEditor 永久死亡: `defineAsyncComponent` 添加 `onError` 重试(限 2 次)
- [x] 🟡 loadDirectory 静默吞异常: 切换 Tab 加载目录失败时添加用户提示
### 暂不处理
- [ ] ⚪⑬ fallback 路径在非英文 Windows 上不匹配 — 边缘场景,影响有限
- [ ] ⚪⑯ SftpDisconnect 未走 ensureSftpService — 功能正确,风格统一待后续
- [ ] ⚪⑰ ensure 模式 5 种写法统一 — 大规模重构,独立迭代