换句话说:你写的代码不能失败.我有兴趣听取那些从事心脏监测,水测试,经济基础,导弹轨迹或航天飞机氧气浓度等项目的人的意见.
你是如何为编写这种代码做准备的:从方法上,智力上和情感上?
编辑
我已经标记了这个维基,以防代表问题让人们不予回复.我认为在这个问题上会有比现在更多的观点.
小智 5
我为医院用血压测量装置写了一个驱动程序.如果"失败",患者将不会在预定时间检查血压; 如果他的血压异常,将不会触发警报(在较大的系统中).这样的事件可能具有临床意义.
我的方法是彻底阅读非工作环境中的规范/文档(以避免立即开始编码的诱惑),然后在工作中再次阅读.在那之后,我总结了纸上的可能状态和行为以及"流程图"算法,并注释了所有潜在的现实世界"坏事件"(电缆被拔掉,电池死亡等).最后,我编写并重写了驱动程序三次,每次都有不同的机制(例如FSM),并比较了他们的结果.每次迭代都帮助我找出了我尚未发现的弱点.第三次改写是"官方"结果.我和我的同事一起回顾了每次迭代.
情绪准备包括说服自己,如果不可想象的事情发生,至少我不是故意疏忽 - 只是无能(旧的"我只是人类"的借口).;-)