架构
文章平均质量分 92
amongdata
关注技术管理、企业架构、业务架构等,曾就职于思科(CRDC)、网易、阿里等企业
展开
-
设计模式-- 依赖倒置DIP(例解-从编码到服务级解耦)
原定义:高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象(High level modules shouldnot depend upon low level modules.Both should depend upon abstractions.Abstractions should not depend upon details. Details should depend upon abstractions)其核心思想是:要面向接口编程(IOP),而不是面向原创 2021-10-26 17:16:46 · 500 阅读 · 0 评论 -
【架构案例-依赖倒置】循环依赖解耦
一、循环依赖有哪些首先我们要讲清楚什么是循环依赖,以及循环依赖的在程序设计层面、软件产品设计层面、顶层架构设计层面上可能出现的场景。从概念模型上讲,只要两个或多个元素产生相互依赖关系,就可以看成产生了循环依赖:上图是两个依赖关系正确的示例:A元素正常工作依赖于B元素的正常工作,或者A元素的正常工作依赖于B、C、D元素的正常工作。这里的A、B、C、D四个元素可以指代四段代码,也可以指代一个业务系统中四个功能模块,还可以指代顶层架构设计中的4个独立工作的业务系统。循环依赖在逻辑层面上是一个有转载 2021-10-20 20:49:49 · 1165 阅读 · 0 评论 -
DDD如何设计落地?(库存,产品账示例)
一.背景本文预算管控服务建设作为一个DDD设计的例子介绍,目标是是呈现一次DDD设计的过程,为了减少绘图和描述的工作量,文中会对预算管控业务需求和功能做简化。请重点关注设计的流程,这是我们想传达的重点,忽略设计细节的合理性。另外,对于预算管控服务来讲,不一定要用DDD来进行分析设计,基于传统的数据驱动就完全可以满足需求,但作为介绍DDD实施过程,预算管控是一个不错的例子(不需要画太多的图)。在这里我们不讨论什么类型项目合适DDD,可以参考:大致的共识为复杂度高的业务适合DDD。而复杂...原创 2021-06-12 22:20:26 · 23338 阅读 · 10 评论 -
微服务设计模式(系列)-分布式事务(Saga模式)
这里写自定义目录标题SagaSaga每个Saga由一系列sub-transaction Ti 组成每个Ti 都有对应的补偿动作Ci,补偿动作用于撤销Ti造成的结果可以看到,和TCC相比,Saga没有“预留”动作,它的Ti就是直接提交到库。Saga可能的行为T1, T2, T3, …, TnT1, T2, …, Tj, Cj,…, C2, C1,其中0 < j < nSaga的 恢复策略backward recovery,向后恢复,补偿所有已完成的事务,如果任一子事务失败原创 2020-05-26 12:08:48 · 1073 阅读 · 0 评论 -
微服务设计模式(系列)-微服务拆分
软件模式-微服务拆分:按业务能力分解微服务场景基于业务分解的原则场景如果你正准备将你的单体架构(Monolithic architecture)应用改造为微服务架构,并希望使用微服务架构将应用程序构造为一组松耦合的服务。那么第一个要面对的问题就是如何进行服务的拆分。上图展示了微服务的架构优势,主要包括两方面:简化测试并允许独立部署将工程组织结构化为一组小型(6-10名成员)的自治团队,每个团队负责一个或多个服务这些好处不会自动得到保证。相反,它们只能通过合理的服务分解为实现。服务必须足够翻译 2020-05-25 19:49:37 · 514 阅读 · 0 评论