这次给自己项目做了一轮大扫除,核心想法是:名称一致、服务能优雅收场、长跑时别越跑越脏。
我动了哪些地方
- 品牌统一:核心启动 banner、Flutter 入口类名、默认下载/文档目录,全换成
StoreX,不再出现老代号。 - 日志路径安全:不再手撕字符串取目录,用
filepath.Dir规规矩矩算路径。 - 心跳优雅退出:Gin 包在
http.Server里跑,心跳超时先走Shutdown,不再粗暴os.Exit。 - 上传进度收尾:任务结束或取消后,5 分钟定时清理进度 map,避免长时间运行时堆积。
- 小修小补:移掉未用的
os引用,避免构建报警。
为什么这样做
长期跑的服务里,随手的小偷懒会变成隐患:名字不一致、心跳直接杀进程、内存里塞满过期进度。一次性收拾干净,后面少还债。
验证清单
- 断开心跳,看日志是否出现 “shutting down…” 且 HTTP 端口被关掉。
- 跑一次上传,完成后查询进度,等 5 分钟再查应为空。
- CLI、客户端标题、默认下载目录都显示 “StoreX”。
- Windows 发布脚本构建能过。
风险与后续
- 心跳在上传中途超时时,后台 goroutine 还缺少更细的取消处理,后面要补。
- 进度清理延迟写死 5 分钟,视运行情况再调。
- 还欠自动化回归:心跳超时流程、上传进度生命周期、品牌文案。