昨天在开发基于能量的任务推荐应用时,我遇到并解决了一个有趣的问题。这次经历让我学到了一个宝贵的教训:在前后端实现方式切换时,一定要仔细检查数据流。
问题背景
我正在构建一个根据用户一天中不同时段的能量水平来推送任务的应用。该应用以用户的日历数据作为主要数据源,设置页面允许用户配置权限,包括启用/禁用特定日历。
我的初始方案
为了优化token使用量,我实现了批处理系统而非实时生成:
- 将所有日历任务一次性发送给大语言模型进行能量评估
- 日历的启用/禁用设置仅控制前端显示
- 相比为每个任务实时生成,这种方法节省了token
问题追踪
昨天测试时,我发现无论怎么尝试,日历的开关状态都无法传递到另一个页面。在调试了整个链路中的每个组件后,我找到了根本原因:设置页面根本没有向前端发送任何数据。
问题在于,我在实现变更过程中完全忽略了数据传输这一环节。
架构演进
原始实现:
- 设置页面 → 日历开关 → 直接后端传输
- 用户返回首页 → 对应的日历任务发送到后端服务进行生成
当前实现:
- 纯前端控制,类似于搜索后的筛选组件
- 功能更像搜索界面
核心收获
主要教训:在前后端实现方式切换时,务必验证数据流。
当重构或改变数据在应用中的流动方式时,审查整个数据管道以确保不会在转换过程中丢失任何环节是至关重要的。看似复杂的bug可能只是在架构变更过程中被忽略的数据传输步骤。
这次调试经历提醒我,系统性验证数据流应该成为任何架构重构过程的标准环节。