领域驱动设计(简称DDD)
    康威定律

    DDD的作用
    1.有助于指导我们确定系统的边界
    2.能够聚焦在系统的核心元素上
    3.帮助我们拆分系统

    DDD的常用概念
    领域
    领域: 领域是有范围界限的,也可以说是有边界的
    核心域: 核心域是业务系统的核心价值
    通用子域: 所有子域的消费者,提供着通用服务
    支撑子域: 专注于业务系统的某一重要的业务

    界限上下文
    理解: 语文中国的语境的意思
    方式: 领域+界限上下文
    目的: 不在于如何划分边界,而在于如何控制边界

    领域模型
    理解: 领域模型是对我们软件系统中要解决问题的抽象表达
    领域: 反应的是我们业务上需要解决的问题
    模型: 我们针对该问题提出的解决方案

    回到微服务的设计原则上

    要边界清晰的微服务,而不是泥沙小单体

    要领域驱动设计,而不是数据驱动设计,也不是界面驱动设计

    要职能清晰的分层,而不是什么都放的大箩筐

    要做自己hold住的微服务,而不是过度拆分的微服务

    数据驱动设计: 一个系统,将模块拆分完,然后需求分析,分析完。第一,去设计数据库,设计表,表内包含哪些字段。
    缺点:开发快,不易维护
    缺字段,加字段,拆分表,加表

    界面驱动设计: 界面上缺什么就设计什么

    微服务过多的情况下:

    会导致软件维护成本的增生,因为服务多了,每个环节每个服务之间都会有一个成本的上升,集成成本,运维成本以及监控和定位的成本。尤其是测试成本和监控和定位的成本会成指数往上增加。