Files
u-desk/docs/代码改进清单.md
T

3.3 KiB
Raw Blame History

代码改进清单

基于 Wails 开发文档 vs 项目现状审查,2026-05-16

已完成

  • 🔴① main.go 添加 SingleInstance 单实例锁(top.1216.udesk)
  • 🔴② app.go:74-97 RegisterGlobalHotkey 竞态修复(合并为单一 defer mu.Unlock())
  • 🔴③ build/windows/info.json 版本号 0.1.0→0.4.0,公司名→1216.top
  • 🟡⑤ 删除 frontend/src/wailsjs/wailsjs/ v2 遗留绑定目录
  • 🟡⑥ LoadConnectionProfiles 手动 map 转换改用 json.Marshal/Unmarshal
  • 🟡⑨ App.vue onMounted 添加 contextmenu 事件拦截(禁用浏览器默认右键菜单)
  • 🟡⑫ main.go Run() 错误输出改用 fmt.Fprintf(os.Stderr, ...)
  • Sidebar 设置按钮 ··· 点击无响应修复:移除 .stop + Teleport 重构 + 增大点击区域

待处理

  • ④ 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 专用导入拆到 app_windows.go(registry/w32 包隔离)
  • ⑪ 全局结构化日志 — fmt.Println/Printf 全部替换为 log/slog(app.go + internal/ 共 45 处)
  • ⑬ app.go 更新检查 URL 改从 update_config.json 动态读取,不再硬编码

代码审查修复 (2026-05-16)

基于 App 拆分后全量审查,17 项问题已修复 15 项

已修复

  • 🔴① app_windows.go 添加 //go:build windows 构建标签
  • 🔴② app_windows.go 移除 fallbackName 死参数
  • 🔴③ initModulesByConfig 复用 initFilesystemModule,消除重复初始化逻辑
  • 🔴④ WindowToggleAlwaysOnTop 的 isAlwaysOnTop 修改加 mu 锁保护
  • 🟡⑤ GetEnvVars 从 app_filesystem.go 移至 app_system.go(归属修正)
  • 🟡⑥ GetAuditLogs 从 app_config.go 移至 app_filesystem.go(归属修正)
  • 🟡⑦ BgmGetPlaylist 处理 db.Find 错误
  • 🟡⑧ LoadConnectionProfiles 处理 json.Unmarshal 错误
  • 🟡⑨ startAutoUpdateCheck 改用 requireUpdateAPI 统一加锁
  • 🟡⑩ startAutoUpdateCheck 配置读取失败添加 slog.Warn 日志
  • 🟡⑪ MigrateTabConfig 错误从 _ = 改为 slog.Warn
  • 🟡⑫ app_recycle.go 移除空 import 块
  • ⚪⑭ OssConnect 补充 godoc 注释
  • ⚪⑮ EmitEvent 闭包提取为 app.emitEvent 方法,消除重复

Bug 修复 (2026-05-16)

  • 🔴 预览状态级联失败: clearContent() 未重置 isBinaryFile,打开二进制文件后所有图片/视频预览失效
  • 🔴 Tab 切换状态不同步: 跨服务器 Tab 切换时面包屑和文件列表未更新
  • 🟡 AsyncCodeEditor 永久死亡: defineAsyncComponent 添加 onError 重试(限 2 次)
  • 🟡 loadDirectory 静默吞异常: 切换 Tab 加载目录失败时添加用户提示

暂不处理

  • ⚪⑬ fallback 路径在非英文 Windows 上不匹配 — 边缘场景,影响有限
  • ⚪⑯ SftpDisconnect 未走 ensureSftpService — 功能正确,风格统一待后续
  • ⚪⑰ ensure 模式 5 种写法统一 — 大规模重构,独立迭代