技术开发 频道

程序出现致命错误,程序员应该怎么办?

  【IT168 编译】如果你在应用程序中发现了问题或者是漏洞,这时你应该怎么办?首先,一定要保持冷静,评估情况,因为只有确定了严重情况,才能明白接下来应该做什么。

程序出现致命错误,程序员应该怎么办?

  发现错误或漏洞

  根据API开发和管理公司Postman的首席执行官Abhinav Asthana的说法,软件团队通常都有明确的协议来处理优先级为1的问题。通常情况下,发生问题之后一定要及时通知使用这些服务的用户,以及可能会因该服务无法使用而波及到的使用其它服务的用户。

  HYPR首席执行官George Avetisov表示,发现问题的第一反应肯定是要马上解决这个问题,但实际上,程序员要首先确定导致这个问题的潜在原因,并和使用该配置文件的终端用户进行沟通。修补程序的紧迫性取决于用户遇到问题的可能性以及错误暴露的可能性。所以,在采取相关措施之前,确定修复程序的重要性是很关键的。

  Avetisov认为当发现致命错误时,程序员很关键的一个工作是写文档,它简化了运营团队和客户的沟通。程序员最忌讳的就是做无声的修复,因为这会使得将来调试或者错误跟踪没有追溯。

  Asthana表示,程序员还可以根据具备某些确定性的根本原因来调试问题。根据经验,问题的根本原因往往会认为是在新推出的代码中。

  如何处理致命错误或漏洞

  被致命漏洞选中的企业数分钟之后就可能会损失数百万美元。Asthana表示:不仅是企业会蒙受损失,而且依赖企业服务的用户也会因此受到波及。2017年2月,GitLab管理员不小心输入了一个删除主数据库的命令,导致该站点必须删除才能维护,并且几个小时内无法访问该站点。据该公司称,在自己服务器上安装了GitLab软件的用户因为没有连接到GitLab.com而没有受影响,虽然中断服务是一件坏事,不过,所幸的是付费用户没有受到影响。

  CloudBees的高级顾问Viktor Farcic表示,这种致命错误很容易摧毁一家公司,但是GitLab在博客上公开了处理,使得GitLab反而收获了更高人气。

  如果企业也出现了像GitLab这样的致命错误,Asthana建议一定要注意其一分钟内的影响,这样可以更加明确的得到解决问题所需的团队资源。

  如果是企业发现了致命错误,那么就意味着用户还没有发现这个问题,那么只要团队足够快,就可以在用户体验之前修复内部发现的问题。Farcic表示,通常情况下,企业内部是很少会发现致命错误的,如果程序员手动发现了错误,那么就意味着团队没有一套好的自动化测试,而且迭代也不是足够小。

  开发安全可靠应用的提示

  Farcic表示,错误就像疾病,当你忽视时,他们往往会扩大造成更大的问题,就像医生经常叮嘱我们的保持健康的最好方式就是预防,软件错误也是一样。

  针对错误或漏洞最好的“药物”就是建立一个监测和警报解决方案,它会自动解决问题,如果不能解决,也可以使得程序员迅速采取行动来进行恢复。

  Avetisov对开发应用程序的建议是通过单元测试、自动回归和边界检查进行以测试为驱动的开发。以功能测试的优先级来评估非功能测试,有助于在漏洞未形成影响时就发现它。

  Asthana表示,不管你测试或不测试,错误就在那里,不来不去。所以一定程序员一定要自己时刻处在危机模式中,设置正确的触发和间隔监视。而且还要确保协作和版本控制工具的正确性,让所有团队成员及时了解到最新的代码更改情况。

0
相关文章