Skip to content

文件标签管理器 v27 —— 拆成 53 个模块(主程序砍掉 56%)

Choose a tag to compare

@ZEcard17 ZEcard17 released this 08 Oct 06:56
· 16 commits to main since this release

★★★ 这一版最大的变化:主程序从 37,247 行砍到 16,357 行(少 56%)

原来是个 4 万行的单文件(1.6 MB),别人打开就劝退、编辑器都卡。
现在拆成 53 个模块,主程序只剩 16,357 行 / 745 KB。

拆成什么样了

独立类(13 个):FileList / PreviewPane / StarGraphEditor / TagBox /
IndexManagerDialog / FloatingBall / TagThumbnail / AutoTagRulesDialog /
PropsDialog / QuickPreview / HoverPreview / AutoRuleEditDialog / ShortcutDialog

功能组(24 组):菜单构建 / UI构建 / 标签操作 / 文件操作 / 扫描索引 /
搜索过滤 / 日志状态 / 健康检查 / 网盘维护 / 空闲任务 / 撤销 / 主题配色 /
快捷键 / 导航 / 剪切粘贴 / 分页 / 统计显示 / 缓存设置 / 面板布局 /
帮助关于 / 外观零件 / 插件挂载 / 预览控制 / 空白区菜单

原有模块:TagStore(数据层)/ i18n(多语言)/ 各种对话框 / 单位换算 / 电子书缓存 …

怎么做到"拆了还不出事"

  • 稳定接口:类里留一行同名转发,所有调用方一个字都不用改
  • 借名字机制:模块用主程序的 T / heme_get / 常量时,
    用代理在读取时现取(不是启动时取快照)
  • 安全网:建基线.py / 比基线.py / 体检模块.py ——
    每次改完跑一遍,行为跟以前不一样就立刻回退

★★★ 顺手修掉的真 bug(都是"静默失效",不报错的那种)

  • 悬停预览整个功能是坏的:模块的 _APP 被设成了错误的模块,
    20 个借来的名字全是 None —— 被兜底 except 吞掉,只有一行警告
  • 5 个模块的 enable_wheel_scroll 借不到 → 那些窗口鼠标滚轮失效
  • _USAGE_PATH 永远借不到 → 「用法记录」打不开

别的东西

  • 界面没变(功能一个都没少),代码结构清楚多了
  • 附 架构图.md(改哪儿翻哪儿)+ 错题本(170 条踩坑记录)
  • 多语言、主题、插件、悬浮球都正常

★ 提醒:exe 第一次启动会慢几秒(要解压 94 MB 到临时目录)。