
印度
我们团队里有一位来自
印度的同事,他负责编写代码后,让另一位同事(同样是
印度人)来写单元测试。然而,这位负责单元测试的同事在使用 mock 工具时,并没有按照函数预期返回值进行断言,而是直接根据函数当前的实际返回值来做验证。比如,一个函数本应返回字符串类型,但由于代码中存在条件分支,导致实际返回值可能是字典或字符串。由于
Python 的动态类型特性,这种情况并不会引发错误。某天,一场洪水淹没了
欧洲的一个机房,导致
谷歌的一项服务中断。这影响了我们代码调用的一个内部 API(该 API 本身依赖于被破坏的
谷歌服务),从而返回了异常结果。
印度同事调用这个 API 时,其返回值从原本的字符串变成了字典。随后,这个字典作为参数传递给了另一个
谷歌 API,结果一直报错。而错误信息仅显示为 gRPC 核心问题,完全看不出是参数类型不匹配引起的。于是,从早上六点到下午四点,我们一直在线上调试。在会议中,
谷歌支持团队的一位华人员工反复表示我们的服务没有问题——确实如此,毕竟错误源自传参不当。更糟糕的是,当时
公司技术线的
领导们几乎都参与了讨论,甚至连刚入职一周的组织负责人也到场了。这次故障导致我们的流水线中断,所有下游业务的数据都无法更新。最终,还是通过对比方法才找到问题根源:经理逐一比对了上一次成功运行的状态与本次失败状态之间的差异(包括中间变量和错误返回值),这才发现了问题所在。虽然我见过一些非常严谨且优秀的
印度同事,但大多数时候,他们的工作表现并不让人放心。