FocusPet项目软件工程质量 - 讨论要点
资料:https://milkietigera.github.io/posts/2025/11/focuspet-alpha-postmortem/
https://milkietigera.github.io/posts/2025/10/blog-post-3/
项目技术特点概述
FocusPet是一个采用混合架构的桌面效率应用,技术特点包括:
-
三进程架构:Tauri(Rust)后端 + Web(React/Svelte/Vue)主UI + Godot宠物渲染
-
跨进程通信:WebSocket实时同步状态,Tauri Commands处理业务逻辑
-
技术栈多样性:Rust + TypeScript + GDScript,集成复杂度高
-
跨平台部署:Windows + macOS,涉及代码签名和打包复杂性
软件工程质量提升讨论要点
1. 跨进程通信可靠性
问题:如何保证WebSocket通信在异常情况下的稳定性?
忽略后果:宠物与主界面状态不同步,核心情感闭环被破坏,用户体验割裂
最佳实践建议:
-
实现消息重试机制和连接状态监控,建立消息版本兼容层
-
使用AI生成WebSocket压力测试脚本,模拟网络异常和消息丢失场景
开源工具:使用Autocannon进行WebSocket压力测试
2. 多技术栈代码质量统一
问题:三个不同技术栈如何保持一致的代码质量标准?
忽略后果:代码风格混乱,技术债务累积,新成员上手困难
最佳实践建议:
-
配置统一的Pre-commit钩子,在提交前自动运行各栈的linting
-
使用AI分析各语言代码模式,生成统一的代码规范文档
开源工具:Husky(pre-commit) + Rustfmt/ESLint/GDScript格式化
3. 跨平台构建与部署自动化
问题:如何建立可靠的跨平台CI/CD流水线?
忽略后果:最后一公里发布受阻,用户无法安装,项目无法交付
最佳实践建议:
-
建立GitHub Actions矩阵构建,并行测试Windows/macOS环境
-
使用AI生成跨平台构建诊断脚本,提前发现兼容性问题
开源工具:GitHub Actions + Tauri Action
4. 集成测试策略
问题:如何有效测试三个独立组件的集成点?
忽略后果:演示时出现集成故障,用户遇到不可预测的bug
最佳实践建议:
-
建立端到端测试,覆盖"开始专注→宠物反馈→任务完成"核心路径
-
使用AI生成集成测试用例,特别关注跨进程边界条件
开源工具:Playwright(Web) + Godot测试插件 + 自定义Rust集成测试
5. 依赖管理与安全
问题:多语言依赖如何统一管理安全更新?
忽略后果:安全漏洞,依赖冲突,构建不可重现
最佳实践建议:
-
统一使用Dependabot自动化依赖更新,建立安全扫描流水线
-
使用AI分析依赖变更影响,生成迁移指南
开源工具:Dependabot + cargo-audit(Rust) + npm audit(Web)
6. 错误监控与诊断
问题:生产环境问题如何快速定位和修复?
忽略后果:用户遇到问题无法解决,负面评价积累,留存率下降
最佳实践建议:
-
集成结构化日志系统,为关键操作添加追踪ID
-
使用AI分析错误模式,自动归类常见问题并提供修复建议
开源工具:Sentry(错误追踪) + 结构化日志库
7. 性能与资源监控
问题:如何确保三进程架构不会过度消耗系统资源?
忽略后果:应用卡顿,耗电量大,用户主动卸载
最佳实践建议:
-
建立性能基准测试,监控内存泄漏和CPU使用率
-
使用AI分析性能数据,识别资源使用异常模式
开源工具:Benchmark.rs(Rust) + Chrome DevTools(Web) + Godot性能分析器
8. 配置与环境管理
问题:多环境配置如何避免硬编码和配置漂移?
忽略后果:开发/测试/生产环境行为不一致,难以调试和部署
最佳实践建议:
-
使用环境变量和配置文件分层管理,实现配置即代码
-
使用AI验证配置完整性,生成配置schema和验证规则
开源工具:Figment(Rust配置管理) + dotenv
验收标准建议
Beta阶段必须达成(10个工作日)
-
基础CI流水线:代码提交自动运行格式化检查、基础测试、跨平台构建验证
-
核心集成测试:"开始专注→宠物反馈→任务完成"关键路径端到端测试通过
-
跨平台打包:Windows和macOS均可生成可安装包,基础功能正常
-
错误监控:集成基础错误报告,关键异常能够被捕获和上报
进阶目标(根据时间选择)
-
性能基准:核心操作响应时间<100ms,内存使用有明确上限
-
自动化部署:通过CI自动发布到测试环境,支持一键回滚
工程角度的必要性解释
这些标准对FocusPet项目特别关键:
-
架构复杂性要求:三进程架构的集成点是最大风险源,必须建立可靠的测试和监控
-
用户体验依赖稳定性:情感化体验要求极高的可靠性,任何状态不同步都会破坏核心价值
-
跨平台交付挑战:桌面应用的最后一步(安装包)决定项目成败,必须投入足够资源
-
团队协作效率:多技术栈需要统一的质量标准,否则技术债务会快速累积
技术取舍指导原则
在10天Beta周期内,基于风险优先级进行取舍:
必须优先解决(高风险)
-
WebSocket通信的可靠性和重连机制
-
核心用户旅程的端到端测试
-
跨平台构建和基础安装验证
应该解决(中风险)
-
错误监控和日志系统
-
基础性能基准测试
-
依赖安全扫描
可以优化(低风险)
-
高级性能优化
-
完整的测试覆盖率
-
自动化部署流水线
特别建议:针对混合架构的"集成第一"策略
-
每日集成验证:每天至少一次完整的三组件集成测试
-
消息协议稳定性:冻结核心消息格式,建立版本兼容策略
-
故障降级机制:当某个组件失败时,其他组件应有合理的降级行为
-
跨团队沟通:定期同步各组件接口变更,避免集成 surprises
记住:对于FocusPet,工程质量的底线是保证核心情感闭环的可靠性。所有工程实践都应服务于这个目标,而不是追求技术完美。