问题一:api层和biz层是否存在冗余?
api层和biz层是否存在冗余?
参考回答:
api层和biz层并不冗余。api层是站在应用的角度与外部应用交互约定的实现,是向外表达;而biz层是应用承载业务里的某一类场景,是向内表达。两者虽然大多数情况下是1:1的关系,但语义不同,也会出现N:M的情况。
关于本问题的更多回答可点击原文查看:
https://developer.aliyun.com/ask/625400
问题二:是否可以跨层调用dao层?
是否可以跨层调用dao层?
参考回答:
可以跨层调用dao层。只要保持四层的职责定位清晰,跨层调用是可以的。禁止跨层调用可能会导致变形动作和无效代码的增加。
关于本问题的更多回答可点击原文查看:
https://developer.aliyun.com/ask/625401
问题三:代码应该放在4层定位的哪一层?
代码应该放在4层定位的哪一层?
参考回答:
代码应该根据职责放在适当的层。对于复杂业务逻辑,应该放在domain层,形成厚domain薄biz的结构。domain层承载应用最核心的业务能力,要敦实、包容、开放;而biz层是面向场景的,核心是复用domain层搭建业务场景,讲究灵活。
关于本问题的更多回答可点击原文查看:
https://developer.aliyun.com/ask/625402
问题四:什么是“厚domain薄biz”?
什么是“厚domain薄biz”?
参考回答:
“厚domain薄biz”是指在系统架构中,domain层(领域服务层)应该承载核心的业务能力和逻辑,设计得相对厚重,注重代码的复用和沉淀;而biz层(业务层)则相对设计得轻薄,主要负责基于domain层快速搭建和编排具体的业务场景。
关于本问题的更多回答可点击原文查看:
https://developer.aliyun.com/ask/625403
问题五:如何处理不同业务场景间的共性代码?
如何处理不同业务场景间的共性代码?
参考回答:
如果两个场景间有共性代码,且不归属于domain、util、infra范畴的,宁肯做一定的代码冗余,也不要过度追求复用。biz层应优先管理好自身的业务逻辑,过度追求复用可能会使系统复杂化。
关于本问题的更多回答可点击原文查看: