抛弃MVC,DDD已上路

重构原因

  • 追求代码的极致简洁性。
  • 产品经理能容易理解代码结构。
  • 减少对SpringBoot框架的依赖。
  • 代码的清晰、简洁和规范性。

领域驱动设计(DDD)的引入

  • 通过阅读《重构:改善现有代码的设计》和领域驱动设计相关书籍,如Eric Evans的《领域驱动设计 软件核心复杂性应对之道》和张逸的《解构领域驱动设计》,作者对DDD有了更深入的理解。

DDD工程结构

  • 展示了DDD架构的包结构,包括application、domain和infrastructure三层。
    • application层:负责协议转换和数据转换,包括控制器、转换器、请求和响应实体等。
    • domain层:领域核心层,包括模型、端口、服务等,不依赖于任何框架。
    • infrastructure层:基础设施层,包括配置、异常处理、消息监听等。

DDD核心概念

  • 统一语言:使用一致的词汇减少沟通成本。
  • 限界上下文:定义领域所处环境和边界。
  • 聚合根:聚合不同实体和行为,通过聚合根访问内部实体。
  • 实体:具有唯一标识的对象。
  • 值对象:不通过唯一标识识别的对象。
  • 领域、核心域、支撑域、通用域:区分业务领域的重要性和支撑性。

DDD最佳实践

  • 六边形架构:强调领域模型的中心地位。
  • 整洁架构:强调层次的依赖关系。
  • 洋葱架构:通过层次分离关注点。

DDD的优势

  • 便于进行单元测试,核心层的自洽性为测试提供基础。
  • 保持稳定性,基础层和应用层的变化不影响核心层。

MVC与DDD的选择

  • MVC适用于简单业务场景,易于上手,开发效率高。
  • DDD适用于复杂业务场景,提供更好的封装性和扩展性,但上手成本高。

总结

  • 技术选型应根据业务场景、学习成本、开发效率和质量稳定性来决定,选择最适合自己的技术。
  • 13
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值