三层架构和面向领域架构
三层架构相信很多同学并不陌生,就是传统的MVC模型,在垂直领域按功能分成数据访问,业务逻辑和接口。
而面向领域架构,是一种水平式的划分方式,将一个项目按照领域拆分成不同的模块,规定模块之间的关系从而约束职责的划分。
为了说清楚两者的区别,我采用公司组织架构的方式去进行说明。
问题拆分
1000个人的团队,拆分的方式大致有两种,垂直拆分,水平拆分。
垂直拆分
1000人的团队可以按照职能进行拆分。比如,前端,后台,安卓,测试,运维。前端对接后台,后台对接测试,运维。依赖总是单向的。
好处:可以让同样技术栈的同学充分地进行沟通交流。
缺点:当要组织一个项目的时候,需要跨部门协调的成本比较大。部门内部各人员由于分配到不同项目组,互相之间其实也不需要沟通交流,反而和其他部门的人沟通的时间会比较多。
水平拆分
1000人的团队可以按照