2018 年 3 月

第 33 卷,第 3 期

此文章由机器翻译

别让我打开话匣子 - 这不是演习

通过David 极佳|年 3 月 2018

David Platt毫无疑问,你已听说上年 1 月 13 夏威夷状态大部分导致鸭子类型和涵盖的假警报。你只需而避开冷冬季和享有海滩上 piña colada: 文本 shouting"BALLISTIC 导弹威胁入站的收件人夏威夷。查找即时 SHELTER。这不是钻取。"

警报是 false,这是当然的。在调查显示错误地触发该警报的员工认为事件已 real 和不钻取。但让人们其他认识事件: 使用紧急管理 office 软件很遗憾状态。

你可以查看在该可怕设计图 1,哪个新闻插座说在事件描述中使用的紧急管理界面。官方应具有仅所选"钻取 – PACOM (CDW) – 状态,"的第七个链接的顶部,在每次移位上发生的正则内部测试。无论什么原因,专家单击"PACOM (CDW) – 状态仅,"它上面的两个链接触发真实存在。

最初由夏威夷调控器的 Office 警报菜单屏幕
图 1 最初由夏威夷调控器的 Office 的警报菜单屏幕

当然,没有一个确认框:"是否确定?" 如该领域的历史记录中无处不在每个用户,此用户 cruised 权限通过仪上:"是"。

天哪。

理想情况下,我们希望软件操作都可可逆。这是特别适用于的剪切和粘贴文本。但是在现实世界中,我们会遇到的由其性质,是不可逆的操作-即从斗士平面,弹出或 amputating 一段。此警报是属于该类别。虽然最终废除警报,已损害-到 frightened tourists;到心脏患者;到度的填充;到子级; innocence到高级 booze stockpiles,粗略 chugged。我们如何设计应用程序来处理不可逆的操作,而不会阻碍实际警报阻止假警报?

首先,我们设计为认知清楚起见。我可以识别对排列中的项的任何模式图 1测试警报和实际的随机 comingled 的、 采用。尝试将这些页上,在不同表中的不同侧可能以不同的颜色。命名法的一致性将帮助解决此问题:钻取和演示测试或测试消息之间的区别是什么?更改始终使用,例如,向下钻和实型的术语。

接下来,我们设计以避免滑动。当用户不键入或单击精确应用程序要求,从而激活他不想的内容时,会发生情况滑动。这正是我们不要添加单选按钮的右边弹出座位按钮: 无线 pocket 或缕 bumps 用户的手指半一厘米太远和 kablooey !

你可以看到这些想法在设计中的实际弹出座位数 (ejectionsite.com)。触发器位于单独的句柄唯一标记 (认知清楚起见),位于从其他控件,并由用于其他任何内容 (滑动防护) 运动触发。我们不可逆的应用程序应使用类似的技术。

现在,确认框中呢?它具有应该以使用户停止和思考,但是它不会删除。任何时候都不可接受。任何位置。上的任何内容。用户单击"是"一天三次,而"否"实质上是不会,因此事实确认成为自动。因为这不会保护我们成本高昂且危险的不可逆操作,什么会?

此操作不是瞬间关键,因为处于弹出座位。还有另一个看来,需要应用的时间:"Alice,我将向您发送钻取请求。""Bob,我已收到你钻取的请求和我我授权它"。 可能需要键入"钻取"或"实际"正确进一步区分操作的用户。

用于启动这些致命导弹需要类似的多人控制。希望进一步探索的任何人都可以读取书籍"命令和控件"由 Eric Schlosser (企鹅,2013年)。

应用程序 UI 中所示图 1将构成过失。如果我学生之一提交如下的项目,我将 flunk 速度较快,他将他主要变为梵语他抱歉协作。到任何用户想要查看这些类型的错误可以如何轻松升级,建议"失败安全,"按尤金 Burdick 和 Harvey Wheeler (McGraw-峰,1962年),使用其介质最后一章标题为"牺牲任何功能的当年。"

如我在我不我开始的第一列中记在 2010 年 2 月 (msdn.com/magazine/ee309884):"用户不会停止正在人工随时很快,无论多少可能希望它们会演变为更具逻辑性的内容。良好的应用程序识别,并调整到其工作的用户,而不是希望,futilely 的相反。" 导弹实际是否亲自之前我们了解本课程中?


David S. Platt 在哈佛大学拓展学院以及世界各地的公司讲授 .NET 编程。他著有 11 本编程书籍,包括“Why Software Sucks”(Addison-Wesley Professional,2006)和“Introducing Microsoft .NET”(Microsoft Press,2002 年)。Microsoft 在 2002 年授予他“软件传奇人物”称号。他想知道是不是应该绑住女儿的两根手指,以便她学习用八进制计数。您可以通过 rollthunder.com 与他联系。


在 MSDN 杂志论坛讨论这篇文章