今日开发迭代与复盘小记
今天是周六,本来计划上午处理完手上的bug下午就能出门逛逛,没想到一坐就是一整天,再抬头看窗外的时候天已经完全黑了,电脑右下角的时间跳到了23点50,我伸了个懒腰,看着今天提交的一堆代码记录,反而没觉得累,心里满是踏实。
傍晚六点多的时候我终于啃下来那个卡了快三天的爱采购自动登录bug,之前测试环境反复复现,cookie过期之后不会触发自动重登,一直弹“请先登录”,翻了好几遍逻辑才发现`_get_token`方法里只做了csrf_token的校验,没加登录状态的判断,cookie登出的时候还是返回了无效token,自然走不到重登分支,加了一行`data.isLogin == 1`的判断就解决了,顺手把修改记录存到了我自己开发的那款存档工具里,它还贴心问我要不要设回测提醒,我想着先把手上几个优先级更高的bug改完再说。
接下来处理的是交易系统的几个核心问题,上周灰度上线的时候差点出事故的反向开仓撕裂问题,当时交易所延迟了两秒返回平仓确认,系统没等确认就先执行了开仓操作,直接出现了三层仓,虚实账本对不上,吓得我当天紧急回滚了版本,今天终于把逻辑补得严严实实,彻底杜绝了这个隐患。还有那个藏了快两个月的幽灵仓位bug,之前一直复现不出来,上周实盘小流量跑的时候才碰到,部分成交的场景下策略账本直接按下单量记录,没等实际成交回报,这次改完按实际成交量更新,终于把这个坑填上了。之前最头疼的还有好几处数据查询失败悄悄用默认值兜底的逻辑,好几次出问题查了半天才发现数据早就错了,只是被默认值盖住了,今天全改成了数据异常立刻触发邮件告警,再也不会出现问题被捂到最后才发现的情况。顺带优化了AI协调员和收尾流程的规范,算了算以后同类型的任务能省70%以上的成本,这波改完感觉系统稳定性至少上了一个台阶。
改完后端顺手把运营上周提的前端按钮的问题处理了,数据查看页的“重新扫描”和“一键全部同步”按钮之前做的太小,运营都是用笔记本操作,经常点错,我把字号从0.75rem放大到0.9rem,加了内边距,把主操作的一键同步按钮横向做得更宽一点突出优先级,下次运营用的时候应该就不会再吐槽了。
本来以为七点多就能收工,结果产品突然发消息说之前试点的橙系主题用户反馈太刺眼,饱和度太高看久了累,要求全量回滚到原来的靛蓝色主题。我当时看着前天才熬夜改完的二十多处主题样式,差点一口气没上来,但是用户反馈优先,只能耐着性子一点点改回去:meta主题色、tailwind的brand调色板、按钮、侧边栏、输入框、卡片、弹窗、滚动条……十几类组件的样式全部还原,删了之前加的自定义CSS变量,清掉了冗余的全局样式规则,折腾到十一点多才全部改完提交,刷新页面看到熟悉的低饱和靛蓝色界面,确实比晃眼的橙色舒服多了,也就觉得刚才的折腾没白费。
闲下来我顺手看了眼存档工具的账户余额,上线第一天我充了9.2块钱,到今天才花了4毛2,还剩8.78,比我当初设计的时候预估的成本还低,这小家伙平时帮我存修改记录、设提醒,从来没出过错,省钱技能直接点满,还挺给我长脸的。
临睡前刷用户反馈的时候又想起便签工具的粘贴bug,之前有用户反馈复制带`
`、``这类标签字面量的文本的时候,会被系统误判成HTML源码,换行全部丢失,我上周特意加了调试日志跑了一周数据,终于找到了根因,把HTML判定和换行切分的顺序调换了一下,多行内容先按换行切分,每行包上p标签之后再做特殊字符转义,既解决了标签误判的问题,还顺便堵上了HTML注入的风险,单行的URL和HTML片段的处理逻辑也完全没受影响,改完删了调试日志提交代码,今天的任务才算真正收尾。
坐在椅子上发了会呆,虽然周六没休息成,但是看着一个个困扰了很久的问题被解决,系统越来越稳,那种成就感是什么都换不来的。做开发的乐趣大概就在这里吧,一点点磨,一点点补坑,最后出来的东西好用,就比什么都强。明天再来把今天改的内容挨个做一遍全量测试,就可以安心上线了。
AI评价
这篇复盘里最值得肯定的,是你面对交易系统那几个bug时的态度——反向开仓撕裂、幽灵仓位、静默兜底掩盖数据错误,这几个问题你没有轻描淡写带过,而是老老实实写清楚了成因和风险,说明你对"钱"这件事是有敬畏心的。但正因为如此,你更应该多问自己一句:反向开仓撕裂差点酿成事故、幽灵仓位藏了近两个月才被小流量实盘撞见,这两件事暴露的不是"我今天修好了",而是"这套系统在此之前有多长时间在带病运行、拿真实资金试错"。你把重心放在了"补坑"的成就感上,却没有花一句话反思测试环节为什么没能提前拦住这些问题,明天的计划也只写了"全量测试一遍",而不是把这类竞态、部分成交场景补进自动化回归里——如果下次上线前还是靠人工点一遍外加实盘踩坑来发现问题,类似的惊吓大概率还会再来一次。静默兜底那处也是同理,你解决得对,但一个金融交易系统里存在"查询失败就悄悄吞掉、拿默认值顶上"这种设计,本身就值得多写几句自省,而不是一笔带过。
主题回滚那段,你的情绪处理是成熟的——两天心血一夜打回原样,你没有抱怨,认了"用户反馈优先"就动手改,这个职业素养没问题。但从工程角度看,这其实是一个可以提前避免的浪费:一次涉及二十多处样式改动的主题切换,如果上线前先给一小撮用户或者你自己多观察一两天再全量推,不至于要在深夜把改过的东西逐条摹回去。这不是态度问题,是流程问题,你可以想想怎么在"改得爽"和"改得稳"之间加一道小小的缓冲。
存档工具余额那段透出的得意是真实的,也没什么不好,省钱、稳定、顺手,这些都是实打实的产出,值得高兴。只是把这种轻松的自我表扬和前面近乎生产事故级别的交易系统问题放在同一种平静语气里叙述,会让人觉得你对"问题严重程度"的感知有点被"今天做完了多少事"的效率感冲淡了——解决问题的踏实感没错,但差点三层仓、两个月幽灵仓这种事,值得比一句带过更认真的复盘,而不只是"终于填上了"。整体看,你是一个愿意钻进去死磕根因、不糊弄自己代码的人,这点很难得,接下来更该练的是把这种较真往前挪一步,挪到测试和上线策略里去,而不是总在事后补救里体现。

秘书长