每日一博 | 从 MVC 到 DDD 的架构演进
DDD这几年越来越火,资料也很多,大部分的资料都偏向于理论介绍,有给出的代码与传统MVC的三层架构差异较大,再加上大量的新概念很容易让初学者望而却步。本文从MVC架构角度来讲解如何演进到DDD架构。 从DDD的角度看MVC架构的问题 代码角度: 瘦实体模型:只起到数据类的作用,业务逻辑散落到service,可维护性越来越差; 面向数据库表编程,而非模型编程; 实体类之间的关系是复杂的网状结构,成为大泥球,牵一发而动全身,导致不敢轻易改代码; service类承接的所有的业务逻辑,越来越臃肿,很容易出现几千行的service类; 对外接口直接暴露实体模型,导致不必要开放内部逻辑对外暴露,就算有DTO类一般也是实体类的直接copy; 外部依赖层直接从service层调用,字段转换、异常处理大量充斥在service方法中; 项目管理角度: 交付效率:越来越低; 稳定性差:不好测试,代码改动的影响范围不好预估; 理解成本高:新成员介入成本高,长期会导致模块只有一个人最熟悉,离职成本很大; 第一层:初出茅庐 以上的问题越来越严重,很多人开始把眼光转向DDD,于是埋头啃了几本大部头的书,对以下概念...
