其实医生看病和程序员调试程序很类似。
比如一个人不停的咳嗽,但是检查所有指标都正常,那到底哪里出问题了。
比如一个服务,总会有随机延迟增加100ms。log显示都正常。到底哪里出问题了。
区别在于,程序员调试程序大不了重启程序再开始,而且程序员可以来回调试,而且还可以加各种watch。设置断点。还可以采用最小化系统,加log。对系统和服务有充分的认知的程序员还是能定位问题的。
医生比较难的地方就是,没有给你重启程序的机会。大部分操作是不可逆的,probe几个变量,代价很大。一旦调试失败了,这个人就彻底没了。