用例拆分

Use case splitting

提问人:RussianPupok Pupok 提问时间:7/23/2023 更新时间:7/23/2023 访问量:30

问:

拆分用例的最佳方式是什么?

我有以下架构(Clean Architecture):

 - Project.Api
 - - Project.Api.Controllers.TodoController
 - Project.Application
 -- Project.Application.Todos.Commands.CreateTodo
 - Project.Core
 - - Project.Repositories.ITodoRepository
 - - Project.Entities.Todo

CreateTodo 命令通过存储库创建并保存 TODO

var todo = new Todo(...);
await _todoRepository.Add(todo, cancellationToken);

但是在创建TODO之后,我需要做其他事情。例如:

 - Schedule notification about added TODO
 - Generate short link for TODO

如果我在相同的命令中执行此操作,我将获得下一个:

var todo = new Todo(...);
await _todoRepository.Add(todo, cancellationToken);

var notification = new Notification(...);
await _notificationRepository.Add(...);

var shortLink = new ShortLink(todo.Id, ...);
await _shortLinkRepository.Add(...);

此外,其他事情可以有额外的逻辑(尝试捕获、重试政治、验证等)。

它们可能很慢,但我想立即返回结果。

我可以为其他事情创建工作器服务,但它看起来不正确且困难,而且它的一个用例是分开它是否正确?

我该如何解决?

C# 干净架构 用例

评论

0赞 Neil 7/23/2023
拆分存储库和实体。干净的架构应该意味着域/实体是独立的,不应该知道持久性(加载/存储)
0赞 Vivek Nuna 7/23/2023
阅读有关调解器模式的信息

答: 暂无答案