三层架构和面向领域架构
三层架构相信很多同学并不陌生,就是传统的MVC模型,在垂直领域按功能分成数据访问,业务逻辑和接口。
而面向领域架构,是一种水平式的划分方式,将一个项目按照领域拆分成不同的模块,规定模块之间的关系从而约束职责的划分。
为了说清楚两者的区别,我采用公司组织架构的方式去进行说明。
问题拆分
1000个人的团队,拆分的方式大致有两种,垂直拆分,水平拆分。
垂直拆分

1000人的团队可以按照职能进行拆分。比如,前端,后台,安卓,测试,运维。前端对接后台,后台对接测试,运维。依赖总是单向的。
好处:可以让同样技术栈的同学充分地进行沟通交流。
缺点:当要组织一个项目的时候,需要跨部门协调的成本比较大。部门内部各人员由于分配到不同项目组,互相之间其实也不需要沟通交流,反而和其他部门的人沟通的时间会比较多。
水平拆分

1000人的团队可以按照项目来进行划分,做哪个项目就在哪个部门,然后由项目经理统一去带领一个团队。
好处:资源可以充分为项目进行服务,成员目标一致。
缺点:项目的好坏会影响到部门的每一个人,比如有些部门的人很闲,有些部门的人很忙,造成资源浪费。
MVC三层架构与面向领域架构对比

本文探讨了MVC三层架构与面向领域架构的区别,通过团队组织结构来比喻两种拆分方式的优缺点。文章指出,架构设计应适应团队沟通方式,并以学校账号管理系统为例,分析了不同分工方式对开发效率和代码结构的影响,提出了三种解决方案,最后强调架构设计应针对实际问题,避免盲目应用模式。
最低0.47元/天 解锁文章
3065

被折叠的 条评论
为什么被折叠?



