问题一:如何在biz层复用domain层的服务?
如何在biz层复用domain层的服务?
参考回答:
在biz层中,可以通过调用和编排domain层的服务来实现业务场景。这意味着biz层会利用domain层提供的功能和逻辑来完成具体的业务操作。通过这种方式,biz层可以灵活地组合和使用domain层的服务,以满足不同的业务需求。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/620210
问题二:能不能举例说明下domain层跨域操作的合理性?
能不能举例说明下domain层跨域操作的合理性?
参考回答:
以结算系统为例,在“对账单生成领域服务”中,需要检查客商存在性、生成对账单和变更费用单状态。这些操作涉及不同的域,但都是该服务不可或缺的组成。因此,在domain层进行跨域操作是合理的,以便在一个领域服务中完整表达业务逻辑,而不仅是对单个域的简单封装。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/620211
问题三:为什么dao层不需要像domain层那样按域分桶隔离?
为什么dao层不需要像domain层那样按域分桶隔离?
参考回答:
Dao层不需要按域分桶隔离,因为dao之间不会进行横向互调,它们是非常独立的个体。Dao更像是基础设施层的工具,功能单一且通用性强,只要保证使用它们的domain层遵守规矩,dao作为工具可以尽量灵活使用。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/620212
问题四:事务控制应该放在哪一层?
事务控制应该放在哪一层?
参考回答:
事务控制应该视所在业务特性而定。在大多数情况下,如果biz层和domain层是1:1的关系,事务控制放在哪一层区别不大。但在1:n的情况下,放在biz层可能带来大事务的性能风险,而放在domain层则可能有一致性风险。因此,需要根据所在行业特性来决定。在某些情况下,为了架构的简约性,可以将事务控制留在biz层;而在对性能要求较高或需要协调多域的场景中,可能需要将事务控制下放到domain层,并采用重试补偿等机制来保证一致性。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/620213
问题五:在同一个应用内部,事务控制的标准应该是什么?
在同一个应用内部,事务控制的标准应该是什么?
参考回答:
应该是统一的。不应该在biz层和domain层之间随意切换事务控制的位置。这样可以确保整个应用的一致性和可维护性。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/620214