提问人:RussianPupok Pupok 提问时间:7/23/2023 更新时间:7/23/2023 访问量:30
用例拆分
Use case splitting
问:
拆分用例的最佳方式是什么?
我有以下架构(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(...);
此外,其他事情可以有额外的逻辑(尝试捕获、重试政治、验证等)。
它们可能很慢,但我想立即返回结果。
我可以为其他事情创建工作器服务,但它看起来不正确且困难,而且它的一个用例是分开它是否正确?
我该如何解决?
答: 暂无答案
评论