Repository navigation
文件标签管理器 v27 —— 拆成 53 个模块(主程序砍掉 56%)
★★★ 这一版最大的变化:主程序从 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 到临时目录)。