zoukankan      html  css  js  c++  java
  • 程序过敏反应

    上个周末在家看了集《Doctor House》,一个手上出现红色疱疹的病人来到House医生的医院,House医生根据病症现象诊断为对某种肥皂产生了过敏,然后开了1片抗过敏药,疱疹症状减轻,但一会儿后开始出现呼吸困难并发哮喘,立刻注射了1cc肾上腺素后呼吸开始平稳,但又出现心动过速,很快病人心跳停止,经过一番抢救后,最后又回到原点,手上的红色疱疹开始在全身出现。


    这个剧情突然就让我联想到曾经程序中出现的一系列连锁问题,我们在本地开发完成了程序,进行了各种测试感觉完全没问题了,再将它转移到另外一个环境给其他人使用时,有时总会出现些奇怪的问题(进程启动后莫名的消失、运行过程中抛出从未见过的异常,特定情形下的随机错误等等)。现在我把这些问题统统归类为——程序过敏反应。医学上解释的过敏是:“有机体将正常无害的物质误认为是有害的东西,产生抗体”,程序的过敏反应则是:“程序将潜在存在问题的环境当作正常处理,从而产生了异常”。而潜在的环境问题通常就成了程序的“过敏原”。


    人体产生过敏反应的原因十分复杂,医生除了给你开抗过敏药来缓解症状外,通常最佳建议都是让你远离过敏原,无法从根本上改变你的身体让其不再过敏。而程序的过敏反应从理论上来说都是可以避免的,但现实就是有些理论就是无法被实践的。一个系统是依赖大量由不同程序员创造的代码来运行的,有些来自第三方,有些是自己开发的,那么就不可能有一个人能完完全全明白整个系统的全部代码,自然也就没人能识别所有代码的“过敏原”,并小心翼翼的绕过这些“过敏原”。


    你不知道自己对什么过敏,直到你碰到一种东西引起你过敏。程序世界也一样,有一种药叫抗过敏药,那么也有一种代码叫抗过敏代码。虽然代码规范、设计模式等都是为了帮助程序员写出健壮的、易维护的程序,但解决不了程序的过敏反应。直到你遇到程序过敏现象,并根据现象不断深入挖掘分析出过敏原,才可能开发出抗过敏代码(这里可能存在一个反复试错的迭代过程),就像抗过敏药不能解决所有过敏症状一样,不是所有的程序过敏反应都能通过抗过敏代码来解决,如果代码解决不了只好退而求其次用文档来描述,就像在路上遇到个大坑,第一个碰到的人如果没能力修补好至少可以立块牌,避免后面的人重蹈覆辙。


    最后,我想可能有人会有兴趣想知道House医生最后又如何医治那个病人的,答案在《Doctor House》第1季第6集。

  • 相关阅读:
    贪心算法部分题目及知识点总结
    贪心算法(农夫修泥塘)
    贪心算法部分知识点
    丑数运算 一、((输出丑数n的下标)(给定丑数输下标)) 二、((求第n个丑数是谁)(给定下标求丑数))
    关于学习STL部分学到的零碎知识点
    STL中set与map的使用以及优先队列的部分补充内容以及重载运算符的使用
    回文素数与接水问题(OJ)
    关于字符串与整数转化的问题与一些常用字符串处理函数
    部分STL简单应用知识点
    【Python小游戏】俄罗斯方块
  • 原文地址:https://www.cnblogs.com/hehe520/p/6147681.html
Copyright © 2011-2022 走看看