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与基于任务的模型)
Dmi*_*try 25
我认为这可以作为基于任务的UI. 
Microsoft Money 2000是微软的一个例子(尽管他们称之为归纳用户界面.以下是基本指南和一些屏幕截图:Microsoft Inductive User Interface Guidelines
CRUD 界面在编辑时有一个“保存”按钮,您会错过某些更改的“原因”。
例如,将客户的地址从“Fountain St. 55”更改为“Birds St. 444”与将其从“Fountain St. 55”更改为“Fountain St. 555”具有非常相同的语义。刚刚“更新”了街道。
基于任务的界面具有“操作按钮”,“意味着”某些业务。
例如,您可以有一个“正确地址”按钮来表示您正在更改地址,因为它包含一个错字,而地址实际上“概念上”是相同的,只是现在它读取正确。在这种情况下,客户没有实际移动。
然后你可以有另一个不同的动作,比如“将客户移动到一个新地址”,这意味着客户实际上搬到了一个新的地方,而地址更改则具有所有意义。
在 CRUD UI 中 => 您“编辑数据”。
在基于任务的 UI 中 => 您“表示业务发生了”。
第二个总是更强大,虽然更难提前思考,并且系统必须灵活地添加、携带和传达在业务运营过程中发现的新“含义”。
但是你会得到一个巨大的好处:知道“为什么”事物会发生变异。换句话说……捕捉用户的意图。
| 归档时间: |
|
| 查看次数: |
11394 次 |
| 最近记录: |