• 程序员找BUG就和医生看病一样
  • 发布于 13小时前
  • 21 热度
    10 评论
各大医学会会发布一个”临床指南“告诉医生某种病该怎么处理,是一个高度指导性的说明。然后医院根据这个临床指南,由科室的专家制定临床路径,这个是一个操作性更好的标准化的流程:如何检查,如何治疗,如何护理。目的都是尽可能的保证患者的权益。

上面的过程就类似于,google 、apple 、Amazon ,FB 等大的互联网公司和世界级的技术大牛联合,就“XYZ 数据库内存溢出”发布了一个指导性的说明,告诉程序员问题是什么,该怎么处理,然后你的公司的大牛们,根据这个说明结合公司情况和各种客观因素,写了一个《快速解决 BUG--内存溢出篇》,然后你作为程序员在公司出现“XYZ 数据库内存溢出”的时候,根据《快速解决 BUG--内存溢出篇》上的流程,打 log ,找 bug ,写 patch 。

关键是某个 bug 可能是复合 bug ,不是单独 bug 引发的,一轮“打 log ,找 bug ,写 patch”没解决,然后还要来好几轮,甲方很烦躁,但是 bug 没解决,只能一轮一轮的“打 log ,找 bug ,写 patch”,直到公司大牛出手。还有,一轮“打 log ,找 bug ,写 patch”解决了,但是《快速解决 BUG--内存溢出篇》上说,出现某种情况,还有可能还有其他原因导致的,你还需要检查某个地方,你要不要执行检查程序。如果不做,后面出了问题,领导把你的工作记录砸到你脸上质问你怎么办?甲方拿刀跑到你办公室问你当时为什么不按照说明执行必要的检查程序,这就是找 bug 事故,怎么办?

如果做了一堆检查,最后发现其实就是最初的小问题,你作为程序员是不是只能骂人,但是对于公司,或者所有甲方来说,这就是目前能找到的最优解了。
用户评论
  • 浮生若梦
  • debug 也分人呢,大牛和菜鸟 debug 能一样吗?从程序角度来说,不管有多少 bug ,如果定位到了某一个具体的 bug ,解决方案也是固定且肯定可以解决问题的,但是每个人基因不同,都是不同的个体,同一个方案,在不同人身上,那效果完全不一样。
  • 2025/6/19 9:25:00 [ 0 ] [ 0 ] 回复
  • 浅月流歌
  • 找 bug 也需要经验,有时候 bug 现象很明显,但是根因不是那块个地方,那个地方只是其他病灶牵连影响的,某些医生技术不到位,对 bug 位置一顿操作猛如虎,结果一点卵用没有
  • 2025/6/19 9:22:00 [ 0 ] [ 0 ] 回复
  • 人走茶凉
  • 就好比我几年前左脚脚板有牵引性的麻木,大腿疼根部痛,有时候又觉得是屁股疼,有时候又觉得睾丸疼,但用手按压又不疼。然后网上查病,有可能是瘤子压迫神经。我第一次去医院我自己又描述不清楚自己哪里疼。那次没做检查,医生说有可能是腰椎间盘突出,给我开了一周止疼贴,但我连贴哪里都不知。一周后我再次去医院,直接做了 CT ,还真是腰椎间盘突出,也准确定位是哪里突出,压迫到神经,然后动了微创手术解决了。如果不做检查,很多病症都相似,加上患者描述不清楚,医生只能猜测,很难对症下药,有些病可能就会因为一次不检查而更加严重。

    就好比最常见感冒发烧,去小诊所里面他们会开好几种药,可能剂量还很大,甚至开中药,但便宜。但感冒发烧到了大医院,会给做各种检查,抽血啊什么的,确定是因为什么而感冒发烧,流感病毒还是受凉风热感冒,当然,一趟检查下来几百上千块,很多人会难受。很矛盾,我觉得归根结底还是我们自己穷。
  • 2025/6/19 8:49:00 [ 0 ] [ 0 ] 回复
  • 孤寂成海
  • 很正常,我告诉你咳嗽 bug 的调试过程:
    1 、先看严重程度,如果比较严重,就抽静脉血(支原体和白细胞),否则白细胞就够了
    2 、步骤 1 是可以判断是不是细菌感染(克拉霉素等抗生素)还是肺炎支原体(阿奇霉素)
    3 、如果都没有,则考虑急性支气管炎或者咳嗽变异性(过敏性)哮喘
    4 、针对 3 的情况,考虑做物理支气管扩张实验(药物吹气检测),并考虑阿斯美、顺尔宁、或富马酸酮替芬+枸橼酸喷托维林等处理。如果是哮喘级别则用哮喘处方处理。
    根据血液检查情况同时在判断是否做胸片。
    你看,就是一个 bug 调试过程。
  • 2025/6/19 8:45:00 [ 0 ] [ 0 ] 回复
  • 勿笑疯狂
  • 这个 bug 看起来严重解决起来简单,有经验的看病征就知道都不用 debug ,但是公司要赚钱,员工想要回扣,所以员工可以让你做多余但昂贵的 debug 流程,可以给你开多余但昂贵的解决方案,不一定要遵循指南,因为甲方大概率不看/看不懂/不知道指南,而且指南也分版本那
  • 2025/6/19 8:41:00 [ 0 ] [ 0 ] 回复
  • 远行de风
  • 我看唯一的小区别就是 源码不透明、log 不细致、异常接不住、局部变量监视不到、没有代码步进没法下断点、没有版本管理、写了直接 commit 回滚门都没有 而已。
  • 2025/6/19 8:38:00 [ 0 ] [ 0 ] 回复