- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我读过的一些关于 DDD 的文本表明应用层中的应用服务或命令 (CQRS) 密切反射(reflect)了特定的用例。
对于简单的用例,这种映射是有意义的,但在需要多个用户交互的更复杂的实例中,我试图了解如何映射 API 的粗粒度级别,而不将应用程序逻辑推送到 UI 中。
例子:
- 想象一个应用服务:
ImportProductData(date_source)
DoesIncludeExistingProducts(data_source)
ImportProductData(date_source, overwrite=True)
ImportProductData(date_source)
ImportProductData(date_source, overwrite=True)
最佳答案
首先在这里查看 Jimmy Bogards 的启发性帖子 https://jimmybogard.com/domain-command-patterns-validation/ .他不会回答你的问题,而是以一种可以让你更容易下定决心的方式攻击它。
在那篇文章中,他简要地谈到了我认为需要更多关注的一点。如果“用户经常尝试做一些我的域验证不允许的事情”,他建议不要使用异常作为通信机制。使用这个标准,我更喜欢将预期有时会失败的用例分解为验证调用,然后是执行调用。
在您的情况下,使用 IsProductSetValidForImport 之类的验证查询(不是命令)似乎很合适。在上面 Jimmy 的文章中,他努力确定返回的错误集应该有多丰富,但查询的返回集应该是丰富的,所以我们没有问题。你可以返回一个真实的、完整的 View 模型来显示给用户,而不是试图将足够的数据塞进错误字符串来绘制屏幕。我假设如果 10 个产品中有 3 个无法导入,您可能希望允许用户强制更新某些产品而不是其他产品。这给了你这个机会。
如果这个验证查询没有返回冲突,给用户一个“你确定”的消息,然后调用 API 来执行导入命令。如果在调用验证查询和发出更新命令之间发生了一些重要的状态更改,那么抛出异常并处理影响是合适的。
关于user-interface - 命令/应用层映射的用例 : Implementation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50802874/
理论上,一般来说: 数据访问层保存数据库连接和查询。 业务层保存模型和逻辑。 服务层包含应用程序服务的主要服务。 表示层保存网站。 我说得对吗?我错过了什么吗? 什么是基础设施层? 最佳答案 是的,我
我知道 Android 没有像 Activity 具有 onPause 那样的应用程序级 onPause,但看起来我需要类似的功能。我刚才问了一个(愚蠢的)问题(http://stackoverflo
2022-12-04 18:31:01 纪念一下博主的《漫谈计算机网络》连载博客 浏览量破500了. 今天更新完结篇. 面试答不上?计网很枯燥? 听说你学习 计网 每次记了都会忘? 不妨抽时间和我
我一直在尝试构建一个基于 DDD 的应用程序,但我有一些问题。 我有一些层:- 表示层 - MVC- 应用层- 域层... 首先,我想知道我是否可以在ApplicationLayer中执行此操作(获取
我想知道如果我创建一个 OkHttpClient 实例来服务我的“整个 android 应用程序”,是否会出现任何性能瓶颈或问题。即在我的 Application 类中,我创建了一个包含 OkHttp
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 3年前关闭。 Improve this qu
我是一名优秀的程序员,十分优秀!