对我来说,白痴证明只是意味着确保用户即使尝试也不会破坏软件。例如,如果从文本框中读取一个值并将其转换为双精度型,则基础软件具有白痴证明,如果用户键入非双精度型值,则该值不会中断。
我最近写了一份开发进度表,其中一项被命名为“白痴证明UI”。我正在开发此软件的人员开玩笑地冒充该术语,但我可以看到此术语实际上会使人们感到不安。
有什么更好的说法呢?
对我来说,白痴证明只是意味着确保用户即使尝试也不会破坏软件。例如,如果从文本框中读取一个值并将其转换为双精度型,则基础软件具有白痴证明,如果用户键入非双精度型值,则该值不会中断。
我最近写了一份开发进度表,其中一项被命名为“白痴证明UI”。我正在开发此软件的人员开玩笑地冒充该术语,但我可以看到此术语实际上会使人们感到不安。
有什么更好的说法呢?
Answers:
如果您将“防白痴用户界面”作为计划项目包括在内,那么您只是在尝试随后向软件中添加质量。当然,任何设计良好的系统都将验证其输入并为用户提供明确的指导,这并不是作为单独的项目(如在不可避免的紧急情况发生时会被删除)放在日程表上的。
或者,如果必须是离散项(我知道某些组织如何考虑日程安排),则应将“白痴证明用户界面”更改为“输入验证库”,并移至日程安排的前面。
我认为用户输入验证是一个专业术语。如果在内部文档中使用白痴打样,我没有发现任何问题。
强化是一个好词。如果有人要求,请告诉他们,通常是为理想情况编写的首次传递软件,并且像钢制工具一样,软件也需要“硬化”为真正的客户日常使用。
健壮性是另一个好词-您正在使代码健壮性来应对实际客户将面临的挑战。
这两个词听起来很酷,而且很实用,不要责怪用户或程序员,不要直言不讳。
顺便说一句,这是Metrowerks的吉祥物Arnold,他曾经用热处理炉,锻造,铁砧和小铁锤帮助我们Mac程序员强化和增强我们的代码:
防止白痴不仅涉及简单的输入验证。我什至不会在定义中包括这样的东西。
输入验证是一个过程,在其中您要清理和验证用户数据以消除非法/无意义的值。应该始终使用程序外部的任何信息来完成此操作,以消除明显的内容并保护自己免受攻击(例如sql注入攻击)。
我认为防白痴是一组逻辑,可以防止用户通过其他合法方式意外对他/她自己造成重大损害。
例如,rm
拒绝命令rm -rf /
和关闭变体与验证或正确性无关。这是一个完全有效的命令。不幸的是,这是一条命令,可以并且可以清除Unix / Linux中所有磁盘上的所有数据。愚蠢的证明会拒绝此命令,并建议rm -rf --i-really-mean-this /
;如果处于交互模式,则提示用户输入警告后的肯定响应。
任何对系统有害的东西都应该防止白痴。任何可能引起潜在尴尬的事情都可能成为候选人(例如“即使您在文本中提到了一封邮件,您是否也确定要发送不带附件的电子邮件?”,以及“您确定要将这封电子邮件发送给整个公司?”)
防白痴是QA(试图成为最好的白痴)与Development(试图预见所有这些情况并围绕它们进行设计)之间的合作。
至于更友好的同义词,我可以建议“破坏性代码路径分析”或“为关键操作启用用户反馈”。无论您如何称呼它,您都应该在设计过程中尽早开始。
称其为“向用户界面添加Poka轭”。 http://en.wikipedia.org/wiki/Poka_yoke
镀金是我谈论以任何方式(GUI或其他方式)改善最终用户界面体验时所用的礼貌(且非常积极的一面)。
正如您所说,白痴验证是该过程的最大组成部分,同时还涉及设计或工作流程的改进(请考虑最终用户的反馈确认)。
这里的想法是,您可以在工作环境中自由使用该术语,尽管它可能需要一些时间(因此通常会花费一些钱),但它被管理层和用户视为有价值的过程(一旦完成)。
与这个(通常是周期结束)过程相关的许多其他术语使听起来像这样:
通过将黄金与流程(金属通常等同于“价值”而不是“成本”)关联起来,我已经看到,在某些经理的心态中,流程已从费用变为投资。
就像公开声明,在完成此操作之前,那块笨拙的钢铁还不是珠宝。但是一旦镀上它……那么它就很有价值。