2008-10-06 46 views
7

换句话说:你写的代码是不能失败。我有兴趣听到那些从事过有关心脏监测,水质检测,经济基础,导弹轨迹或航天飞机上O2浓度项目的人员的消息。你写的最重要的代码是什么,你是如何处理它的?

你是怎么准备写这样的代码的:在方法上,智力上和情感上?

编辑

我标志着这个wiki以防代表问题让人们无法答复。我认为在这个问题上会比以往有更多的观点。

回答

2

现在我正在研究一个系统的基本代码,该系统从诊所和医院为医疗帐单办公室检索医疗患者信息。我们从一个较小的客户和一个漫长的入侵期开始,以确保质量,但最终这个代码需要安全处理来自不同设施的许多客户的各种报告格式。

它与您的示例的规模并不完全相同,但是一个错误的错误可能会导致错误的人员被收费或正确的人员被收费到一个不存在的地址(篡改信用报告)或者开放人员进行身份盗用,所以它仍然非常重要。噢,这可能意味着医生得不到如此快的报酬。这一点也很重要,特别是从商业的角度来看,但与数据保护和完整性不在一个班级。

3

我已经写了一台MRI机的计算机接口。它不会伤害最终用户,因为它只是记录管理,但它可能会给出不正确的诊断或忽略重要信息。

测试,很多很多的测试。

单元测试,中高级测试。模拟所有可能的输入组合。还有很多硬件本身的测试。测试必须以完整和有条理的方式完成。测试需要花费更多的时间,而不是写入。

错误报告

所有的错误都必须报告并且很明显。如果这样做不会损害专利,那就快速失败。

对于积极保持活力的人来说,情况更糟。它绝不能停止工作。如果失败,需要重新启动并继续尝试。在硬件出现故障的情况下,冗余内部部件也是必须的。

对错的公司来说,这确实是一种困难的情况。但是,如果事情进展顺利,你的资金充足,释放压力不高,这可能是一个非常有益的工作空间。

5

我写了一个医院使用的血压测量装置的驱动程序。如果“失败”,病人将不会在预定的时间检查他的血压;如果他的血压异常,则不会触发警报(在较大的系统中)。这种事件可能具有临床意义。

我的方法是在非工作环境中彻底阅读规范/文档(以避免立即开始编码的诱惑),然后在工作中再次阅读。之后,我总结了纸上可能的状态和行为以及算法的“流程图”,并注释了所有潜在的现实世界“不良事件”(电缆拔掉,电池正在死亡等)。最后,我编写并重写了驱动程序三次,每次都有不同的机制(例如FSM),并比较了它们的结果。每次迭代都帮助我找出了我尚未发现的弱点。第三次改写是“官方”结果。我与同事一起检查了每个迭代。情绪准备包括说服自己,如果不可思议的事情发生,至少我不是故意疏忽 - 只是无能(旧的“我只是人”的借口)。 ;-)

3

不是一个真正的答案,但:

我有谁写的嵌入式控制软件,用于激光眼科手术机器的朋友。当他自己进行激光眼科手术时,他一定要去找一位使用公司系统的眼科医生。我非常钦佩这个人。我无法想象我写过的一款软件,其质量水平足够高,我相信我自己的视力。

0

尽管没有像MRI机器或血压计那么重要,但我在一家在线赌博服务提供商工作时做了重写Blackjack的工作。二十一点是迄今为止最流行的在线游戏,数百万美元将通过这个软件(并且)。

我编写了与服务器和客户端分开的游戏引擎,并使用了测试驱动开发来确保我所假设的结果正在通过。我还有一个包装器“服务器”,它具有可以让我玩的控制台输出。这实际上仅仅是因为它模仿真实的服务器界面,因为玩一个二十一点的文本版本不是很有趣或简单(“你画一个10.你现在有10和6,而经销商有6显示。[bsd]>“)

游戏仍在某些网站上运行,据我所知,在多年的游戏后从未有任何金融bug。

2

我听说过用于在美国宇航局编写代码的过程的疯狂故事。每行代码都有大约10-20行的文档,以及测试,完整的修订历史记录等。每次发现错误时,不仅代码被评估和修复,而且整个编写代码的过程,整个命令链等,以回答这个问题:“在我们的流程中发生了什么错误,使得这个错误被纳入第一位?”

+1

您正在考虑洛克希德马丁军团太空任务系统部门的这个小组,详见http://www.fastcompany.com/magazine/06/writestuff。他们赢得了“联邦政府软件工程研究院(SEI)令人垂涎的5级排名”,这是一个令人印象深刻的故事。 – DarenW 2008-10-07 01:48:14

1

我的第一个“真正的”软件工作是编写一个用于规划立体定向脑手术的GUI应用程序。测试,测试,测试...绝对没有正式的方法,工程风格的想法,只是年轻的程序员开始。当他们开始讨论使用该软件来控制机器人手臂并使用激光时,没有采取任何严肃的工程方法,我感到有点担心,留下更多办公地。

1

我已经创造了其分别装在几个旅游denstinations当地政府的文化和旅游部门在巴厘岛信息系统的应用,提供有关文化,地图,住宿等

如果失败则可能广泛的信息游客无法得到他们最需要的正确信息,被盗窃者欺骗,或者失去了某处:)

相关问题