示例成品 · 平台演示,按左边这组点选真跑出来的
【隐患审查报告】按严重度排序
【高危】
1. 并发写丢失:账户扣款用「读-改-写」三步且无锁,并发下会超扣。改法:改成 UPDATE ... SET balance=balance-? WHERE balance>=? 原子扣减。
2. 资源泄漏:文件流在异常路径没关闭,长期跑会耗尽句柄。用 with / try-finally 兜底。
【中危】
3. 整数溢出:金额用 int 存分,大额累加可能溢出,建议改 decimal。
4. 时区隐患:datetime.now() 无时区信息,跨区部署会算错跨天判断。
【复现与排查步骤】
- 用并发压测复现超扣
- 加 lsof 观察句柄是否持续增长
- 补一条跨零点的时间用例
点左边「开工 · 直接出成品」,出一份你自己的版本(文字免费)