架构设计
夏壹-10分分享
分享
展开
-
里氏替换原则
定义:所有引用父类的地方必须能够使用其子类的对象。通俗点:老爸能干的事情,儿子都能干,反过来儿子能干的事情,老爸未必可以。案例讲解:大家都打过CS吧,我们来描述下里面用到的枪:枪的主要职责是射击,如何射击在各个具体的子类中定义,手枪是单发射程比较近,步枪威力大射程远,机枪用于扫射。在士兵类中定义类一个方法killEnemy,使用枪来杀敌人,具体使用什么...原创 2019-02-26 21:48:24 · 197 阅读 · 0 评论 -
领域驱动设计-模型驱动设计的构造块
1,Layered Architecture (分离领域) 1,将领域模型相关的代码集中到一个层中,把它从用户界面、应用和基础设施代码中分隔开来。 2,领域对象将重点放在如何表达领域模型上,而无需考虑自己显示和存储问题,也无需管理应用任务等内容。 3,每一层内分别进行设计,使其具有内聚性并且只依赖于它的下层。 2,关联设计...原创 2019-01-25 14:34:39 · 405 阅读 · 0 评论 -
领域驱动设计-柔性设计
为了使项目能够随着开发工作的进行加速前进,而不会由于它自己的老化停滞不前,设计必须要让人们乐于使用,而且易于作出修改。这就是柔性设计。 柔性设计是针对深层建模的补充。一旦我们挖掘出隐式概念,并把他们显示的表达出来之后,就有了原料。通过迭代循环,我们就可以把这些材料打造成有用的形式:建立的模型能够简单而清晰的捕获主要关注点;其设计可以让客户开发人员真正使用这个模型。在设计和代码的开...原创 2019-02-12 18:56:42 · 606 阅读 · 0 评论 -
微服务项目分层
一,起因铁打的营盘流水的兵,在后人接手前人留下的项目时,经常咆哮一番,其中一个重要问题就是项目分层架构不清晰,分工不明确,可读性很差,没有办法维护和升级。经常出现推翻了重做,要不就忍着哪里出BUG补哪里。二,经典分层controller层为控制层,用来接受用户的请求。不会涉及太多的业务处理操作,一般交给service层来处理。service层主要用来处理一些业务逻辑,不做...原创 2019-10-11 18:26:41 · 2214 阅读 · 0 评论 -
微服务接口幂等性设计
一,什么是幂等性所谓幂等性,就是对接口的多次调用所产生的结果和调用一次结果是一致的。即不用担心重复执行。二,业务场景用户在线下单,下单后系统需要生成对应的工单,用户通过在线工单跟进后续服务状态。在这个过程中可能会出现了几个问题:1,用户在前端重复提交,造成同样的订单创建多笔。2,订单服务调用工单服务由于网络原因或者其他原因失败,发起重试,可造成工单服务创建多笔。三,技术...原创 2019-10-15 19:55:42 · 771 阅读 · 0 评论 -
架构设计之存储高性能
一,简介高性能架构设计主要集中在两个方面: 尽量提升单服务的性能,将单服务的性能发挥到极致。 如果单服务无法支撑性能,则需设计服务集群方案。 高性能从系统角度角度可以分为:存储高性能和计算高性能。二,存储高性能我们先看一下存储高性能,从关系型数据库,NoSql数据库,缓存三块来提高存储的性能。1,关系型数据库可以通过读写分离和分库分表的方式提升存储性能。...原创 2019-10-13 19:26:22 · 952 阅读 · 0 评论