大厂面试:说说DDD分层架构

0 评论 1687 浏览 9 收藏 4 分钟
🔗 产品经理在不同的职业阶段,需要侧重不同的方面,从基础技能、业务深度、专业领域到战略规划和管理能力。

大厂面试中,会经常聊到DDD分层架构这个问题,这是一种帮助开发者更好地管理和解耦复杂系统,是在三层架构的基础上,优化过的四层架构。本文就给大家详细解释。

在大厂面试中,DDD分层架构常常是一个热门话题。

DDD分层方法能帮助开发者更好地管理和解耦复杂系统,同时也评估候选人对架构设计的深度理解。

关于DDD的各层:用户接口层、应用层、领域层以及基础设施层,候选人如果不能清楚地说出各层的职责,基本面试也就凉凉。

DDD分层架构是在三层架构的基础上,优化过的四层架构。

在下图中,从上到下分别是:用户接口层、应用层、领域层和基础层。

一、用户接口层

用户接口层主要负责管理系统与用户之间的交互。这一层接收用户的输入,如表单数据或操作,之后,用户接口层将应用层的处理结果呈现给用户,结果通过Web页面、移动应用界面等形式展示。

二、应用层

应用层主要用于处理与业务用例和业务流程相关的操作,理论上不应该包含业务规则或逻辑。由于它位于领域层之上,领域层包含多个聚合,所以它可以协调多个聚合的服务和领域对象,完成服务的编排和组合。

应用层应该是很简洁的一层,设计和开发时,不要把领域层的业务逻辑放在这里。如果应用层太复杂,领域模型会失去重点,微服务可能会变成传统的三层架构,业务逻辑会变得混乱。

三、领域层

领域层是系统的核心层,负责封装业务概念、业务逻辑和业务规则,它的任务是执行核心业务逻辑,并通过各种校验方式确保业务的准确性。领域层包含聚合根、实体、值对象、领域服务等领域模型中的领域对象。

四、基础层

基础层为其他各层提供常用的技术和基础服务。这些服务包括第三方工具、驱动程序、消息中间件、网关、文件、缓存和数据库等。它最常见的功能是提供数据库持久化。

基础层为应用层、领域层提供通用的技术能力,实现应用层、领域层与基础设施层的解耦,让领域层专注于表达业务逻辑,无需关注技术实现细节。这层的设计和实现还需要考虑到系统的可扩展性、安全性和性能。

本文由人人都是产品经理作者【汤师爷】,微信公众号:【架构师汤师爷】,原创/授权 发布于人人都是产品经理,未经许可,禁止转载。

题图来自Unsplash,基于 CC0 协议。

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 目前还没评论,等你发挥!
专题
49128人已学习16篇文章
看看别人家的PM是怎么做产品测试的。
专题
12680人已学习16篇文章
栅格系统在页面排版布局、尺寸设定方面给了设计者直观的参考,它让页面设计变得有规律,从而减少了设计决策成本。本专题的文章分享了浅析栅格系统。
专题
12742人已学习13篇文章
发票是财务中必不可少的物品,那发票系统该如何设计呢?本专题的文章分享了发票系统设计指南。
专题
13685人已学习12篇文章
本专题的文章分享了B端产品经理的通用工作流程。
专题
12177人已学习12篇文章
面对多岗位意见不统一时,如何提升自己的话语权,让自己的建议能够真正被他人纳入范围内?本专题的文章分享了关于提升话语权的一些建议。