我正在开发一个允许用户管理某些单独数据点的应用程序。我的用户想要做的事情之一就是“删除”,但这应该是什么意思?
对于Web应用程序,最好是为用户提供严重删除选项或使用“垃圾”系统吗?
在“严重删除”下(很想知道这个名字是否更好......)你点击“删除”,然后警告用户“这是最后和悲惨的行动。一旦你这样做,你将会即使你在哭,也无法在这里得到-insert数据点名称...“ 然后,如果他们点击删除......那么它真的永远消失了。
在“垃圾”模式下,您永远不会相信用户真的想要删除...而是从“主显示”中删除数据点并放入名为“垃圾箱”的存储桶中。这使得它不受用户的影响,这是他们通常想要的,但如果他们犯了错误,他们可以将其取回。显然,这是大多数操作系统已经消失的方式。
“严重删除”的优点是:
“严重删除”的缺点是:
“垃圾”系统的优点是:
“垃圾”系统的缺点是“:
我的问题是哪一个是现代Web应用程序的正确设计模式? “归档”功能如何适用于此?这就是gmail works的方式。给出足够的讨论来证明你的答案是合理的......希望能指出一些相关的研究。
-FT
答案 0 :(得分:9)
以下是您可能喜欢的相关文章。它更侧重于业务场景,但它可以应用于任何地方。
答案 1 :(得分:7)
在我个人的特殊观点中,每一个不可逆转的行为都是一个严重的设计错误。这些“你真的,绝对,非常肯定吗?”消息框是纯粹的垃圾,因为用户很快就能够点击“确定”并完成它。事实上,我已经多次丢失重要数据,尽管有这样的对话。
换句话说:这些对话框不会添加有效的故障安全屏障,只是一个可用性障碍。
即使是垃圾系统也存在这个问题(他们只是推迟了这一刻);从可用性的角度来看的最佳解决方案是无限的历史。当然,实现这一点可能带来禁止成本(例如,在内存使用方面)。
永久删除敏感数据可以(并且应该!)通过各种方式实现,这是一个更复杂的操作:很少需要它。唯一的问题是向用户说明数据通常不会丢失。使用历史而不是垃圾可以在这里提供帮助:垃圾桶可能被误解为永久性删除,而(可见)行动历史不会给出这种安全错觉。
答案 2 :(得分:4)
我认为你很好地总结了垃圾模型的优缺点:
Pro:总的来说,对用户来说更好。
Con:总体而言,开发人员更容易。
对于像我这样的可用性专家来说,这是毫无疑问的。就我而言,开发人员应该努力工作,让用户的生活更轻松。坦率地说,在网络应用程序具有垃圾等撤销功能之前,我认为我们认为它们无法使用。网络应用程序赶上1984年的时间。
其他一些细节:
垃圾箱模型的另一个优点是在大多数情况下无需确认消息的能力。在绝大多数情况下,用户是故意删除某些内容,因此在确认消息中添加额外的步骤通常会为他们添加工作。更糟糕的是,他们养成了快速打击OK的习惯,这可以归结为他们真正更好阅读的其他确认。见http://alistapart.com/articles/neveruseawarning。
垃圾比喻的一部分美妙之处在于它向用户建议删除而不是永久性。像物理垃圾桶一样,可以检索物体。如果您在页面上显示垃圾桶明显足够(因此用户意识到他们可以打开它),并将垃圾桶的图像作为删除菜单项旁边的图标包含,这应该足以表明删除不是摧毁,而是把东西移到垃圾桶里。
如果有性能方面的考虑,可能会销毁垃圾箱中最旧的删除项。这再次与垃圾桶隐喻一致:用户可以预期迟早“某人”将清空垃圾桶。我不认为用户会关心垃圾是否会排空。如果他们需要真正破坏敏感的东西,你可以为它提供一个明确的程序(例如,删除已经在垃圾箱中的东西)。
答案 3 :(得分:3)
我的观点是,没有理由硬删除任何对某人重要的事情。根据我的经验,必须进行磁带备份的痛苦是因为用户意识到他们上周删除了他们需要的内容,可以通过在用户可以软删除的记录上使用“IsActive”或“IsDeleted”标志轻松解决。
答案 4 :(得分:2)
完全依赖于上下文。
答案 5 :(得分:2)
我没有看到应用程序的呈现(Web App与否)是此决定的主要驱动因素。我会更关心数据的价值,娱乐的便利性以及保管和管理的成本。
我的感觉是,当您的应用程序充当宝贵数据的存储库时,最好使用delete-via-trash。