什么是基于任务的UI的示例?

Byr*_*ahl 24 user-interface domain-driven-design cqrs

我的团队已经"负责"创建一个遵循基于任务的UI(不一定使用CQRS)的应用程序.我真的很喜欢帮助用户轻松完成常见任务的UI,但是这个应用程序的许多部分真的"感觉"(对我来说)就像典型的CRUD界面的工作(例如:目录中产品的所有细节).

此时,我们需要基于任务的良好UI的示例,以帮助我们了解可能的内容.你在互联网上看到了什么?

jga*_*fin 27

生成基于任务的UI的最简单方法是保护模型的所有属性/属性.即删除所有的setter.

从这(伪代码):

public class TodoTask
{
    public Date getDateAssigned();
    public void setDateAssigned(Date);
    public string getAssignedTo();
    public void setAssignedTo(string);
}
Run Code Online (Sandbox Code Playgroud)

对此:

public class TodoTask
{
    public Date getDateAssigned();
    public string getAssignedTo();

    public void AssignTo(string userId);
}
Run Code Online (Sandbox Code Playgroud)

您不能再创建基本的CRUD应用程序了.您必须执行task(Assign())来更新模型.

首先删除所有setter,然后分析您应该在每个模型上执行哪种操作(任务).

然后你就完全了.

我在博客上写了这篇文章:http://blog.gauffin.org/2012/06/protect-your-data/(滚动到底部查看CRUD与基于任务的模型)

  • 你是绝对正确的。CRUD即CReateUpdateDelete,使用数据库时的基本操作。你需要使用那些。我正在谈论的是旨在包装 CRUD 的应用程序。也就是说,不强制执行业务规则,而是让用户直接在数据库中存储他们想要的任何内容。对于业务实体(执行规则),您仍然必须使用 CRUD,但它隐藏在 DB 层中,而不是在应用程序中公开。 (2认同)

Dmi*_*try 25

我认为这可以作为基于任务的UI. Windows控制面板

  • @Muzietto:菜单是用户控件(如文本框).基于任务的UI(据我所知)是一种以用户需要完成的任务为中心的方法,与针对编辑数据的CRUD形式相反.人们可以将屏幕截图称为美化菜单,但我不确定downvote是否合理. (5认同)
  • 在我看来,菜单看起来很美。我想念什么? (2认同)
  • 这是最难用我所知道的(荣耀)菜单之一 - 我永远也找不到我想要的东西,总是要寻找,它不会返回任何接近正确的选择,然后我最终不得不谷歌了屏幕截图而不是截图教程.:) (2认同)
  • 基于任务的 UI 与 CRUD 的最佳解释之一是在 https://kylecordes.com/2014/task-based-user-interfaces -“地址更改示例”部分。它说明了 TB-UI 方法背后的价值 - 从那里,我认为更容易找出实现这些目标的 UI 设计。 (2认同)

Den*_*aub 9

Microsoft Money 2000是微软的一个例子(尽管他们称之为归纳用户界面.以下是基本指南和一些屏幕截图:Microsoft Inductive User Interface Guidelines


Xav*_*ero 9

CRUD 接口

CRUD 界面在编辑时有一个“保存”按钮,您会错过某些更改的“原因”。

例如,将客户的地址从“Fountain St. 55”更改为“Birds St. 444”与将其从“Fountain St. 55”更改为“Fountain St. 555”具有非常相同的语义。刚刚“更新”了街道。

基于任务的接口

基于任务的界面具有“操作按钮”,“意味着”某些业务。

例如,您可以有一个“正确地址”按钮来表示您正在更改地址,因为它包含一个错字,而地址实际上“概念上”是相同的,只是现在它读取正确。在这种情况下,客户没有实际移动。

然后你可以有另一个不同的动作,比如“将客户移动到一个新地址”,这意味着客户实际上搬到了一个新的地方,而地址更改则具有所有意义。

所以……简而言之

在 CRUD UI 中 => 您“编辑数据”。

在基于任务的 UI 中 => 您“表示业务发生了”。

结论

第二个总是更强大,虽然更难提前思考,并且系统必须灵活地添加、携带和传达在业务运营过程中发现的新“含义”。

但是你会得到一个巨大的好处:知道“为什么”事物会发生变异。换句话说……捕捉用户的意图。