1、设计内容
确定服务边界,一定以概念的亲和度为准,有些功能可以放在A服务,也可以放在B服务,一不留神就会踩坑。比如这里有一个问题:页面的数据展示模板,是用户属性还是数据属性? 有人说这是用户自定义的应该是用户属性,有的说是描述数据展示的格式,应该是数据属性。如果是用户属性应该放在 用户中心,如果是数据属性应该放在BI。到底怎么判断呢?两种方式 一是:看概念范围,如果只是一两个数据项,比如访问次数,购买数量,而且用户登录总是要展示,那数据模板就是用户属性,如果数据项很多 比如 订单统计,历史曲线,保留率等等,那数据模板就应该放在BI。二是:看前台交互和后台数据调用次数,交互越少,后台调用次数越少越应该放那边。
功能层次
层次清晰,尽量避免出现下层调用上层功能的情况。
集成方式
接口集成:restfull 接口,graphql
共享数据集成:公共数据,配置数据放到Redis;产品、日志等放到elasticsearch中。
2、设计方法学
首先回答一个问题,先设计对象还是先设计行为?
我这里只给出自己的结论:肯定是先设计行为。
如果有疑问大家可以参考下面的文献
或者可以参考,领域驱动的设计方法学
设计模式的方法学
选择合适的方法学
3 如何设计业务流程
核心关键流程
由大概到详细
要有 序列图或者跨职能流程图