15

我正在开发一个允许用户管理一些单独数据点的应用程序。我的用户想要做的一件事是“删除”,但这意味着什么?

对于 Web 应用程序,向用户提供进行严重删除或使用“垃圾”系统的选项会更好吗?

在“严重删除”下(想知道是否有更好的名称...)您单击“删除”,然后警告用户“这是最终的悲剧性行动。一旦您这样做,您将无法获取 - 在此处插入数据点名称 - 回来,即使你在哭……”然后如果他们点击删除……那么它真的永远消失了。

在“垃圾”模型下,您永远不会相信用户真的想要删除......相反,您从“主显示”中删除数据点并放入名为“垃圾”的存储桶中。这可以让用户摆脱它,这是他们通常想要的,但如果他们犯了错误,他们可以取回它。显然,这是大多数操作系统所采用的方式。

“认真删除”的好处是:

  • 易于实施
  • 易于向用户解释

“严重删除”的缺点是:

  • 它可能是最后的悲剧
  • 有时,猫会在键盘上行走

“垃圾”系统的优点是:

  • 用户是安全的
  • 像“一次删除一堆”这样的批量方法更有意义
  • 节省支持头痛

“垃圾”系统的缺点是“:

  • 对于敏感数据,您会制造一种破坏的错觉,用户认为某些东西已经消失,但事实并非如此。
  • 许多细微的区别使实施更加困难
  • 您是否“最终”删除了垃圾箱的内容?

我的问题是哪一种是现代 Web 应用程序的正确设计模式?“存档”功能如何发挥作用?这就是gmail 的工作方式。进行足够的讨论以证明您的答案是正确的……希望能指出一些相关的研究。

-FT

4

6 回答 6

9

这是您可能喜欢的相关文章。它更专注于业务场景,但它可以应用于任何地方。

不要删除,只是不要

于 2010-03-16T15:58:40.433 回答
7

在我个人的独特观点中,每一个不可逆转的动作都是一个严重的设计错误。这些“你真的、绝对、肯定地确定吗?” 消息框是纯粹的废话,因为用户很快就会习惯于单击“确定”并完成它。事实上,尽管有几次这样的对话,我还是丢失了重要数据。

换句话说:这些对话框没有添加一个有效的故障安全屏障,只是一个可用性屏障。

即使是垃圾系统也有这个问题(他们只是推迟了这一刻);从可用性的角度来看,最好的解决方案是无限的历史。当然,实现这一点可能会带来高昂的成本(例如在内存使用方面)。

永久删除敏感数据可以(而且应该!)通过任何方式实现为一个更复杂的操作:它很少需要。唯一的问题是让用户清楚数据通常不会丢失。在这里使用历史记录而不是垃圾桶可能会有所帮助:垃圾桶可能会被误解为永久删除,而(可见的)操作历史不会给人这种安全错觉。

于 2010-03-16T15:57:25.380 回答
5

我认为您很好地总结了垃圾模型的优缺点:

  • 优点:总的来说,对用户来说更好。

  • 缺点:总的来说,对开发人员来说更容易。

对于像我这样的可用性专家来说,这是不费吹灰之力的。就我而言,开发人员应该努力工作,让用户的生活更轻松。坦率地说,在网络应用程序具有像垃圾一样的撤消功能之前,我认为我们不能认为它们是可用的。Web 应用程序赶上 1984 年的时间。

其他一些细节:

  • 垃圾模型的另一个优点是能够在大多数情况下消除对确认消息的需求。绝大多数情况下,用户是在有意删除某些内容,因此在确认消息中添加额外的步骤通常会为他们增加工作量。更糟糕的是,他们养成了快速敲击 OK 的习惯,这可以推广到他们真正更好地阅读的其他确认信息。请参阅http://alistapart.com/articles/neveruseawarning

  • 垃圾比喻的部分美妙之处在于它向用户暗示删除不是永久性的。就像物理垃圾桶一样,可以检索对象。如果您在页面上明显地展示了垃圾桶(以便用户意识到他们可以打开它),并且在“删除”菜单项旁边包含垃圾桶的图像作为图标,那么这应该足以表明删除不会销毁,而是将东西移到垃圾箱。

  • 如果有性能考虑,销毁垃圾箱中最旧的删除可能是可以接受的。这再次与垃圾桶的比喻相一致:用户可以预期“某人”迟早会清空垃圾桶。我认为用户不会关心垃圾是否永远清空。如果他们需要真正销毁敏感的东西,你可以为它提供一个明确的过程(例如,删除已经在垃圾箱中的东西)。

于 2010-03-16T16:42:01.780 回答
3

我的观点是,真的没有理由硬删除任何对某人可能很重要的东西。根据我的经验,由于用户意识到他们上周删除了他们需要的某些内容而不得不进行磁带备份的痛苦可以通过在用户可以软删除的记录上使用“IsActive”或“IsDeleted”标志轻松解决。

于 2010-03-16T15:52:04.597 回答
2

完全取决于上下文。

  • 如果这是一个容易撤消的操作,只需将其删除,您甚至可能不需要确认
  • 如果您可能会丢失大量数据,那么“临时删除的项目存储”可能已经到位
于 2010-03-16T15:43:47.077 回答
2

我不认为应用程序的呈现(Web App 与否)是这个决定的主要驱动力。我会更关心数据的价值、它的娱乐性以及保存和管理它的成本。

我的感觉是,当您的应用程序充当有价值数据的存储库时,更可取的是 delete-via-trash。

于 2010-03-16T15:47:44.477 回答