写点什么

架构师训练营 week10 作业

用户头像
GunShotPanda
关注
发布于: 2020 年 08 月 13 日
架构师训练营week10 作业

作业一:

根据微服务框架 Dubbo 的架构图,画出 Dubbo 进行一次微服务调用的时序图。





关于微服务架构(中台架构、领域驱动设计、组件设计原则),你有什么样的思考和认识?

中台是真正为前台而生的平台(可以是技术平台,业务能力甚至是组织机构),它存在的唯一目的就是更好的服务前台规模化创新,进而更好的响应服务引领用户,使企业真正做到自身能力与用户需求的持续对接。

想法来源于我司的中台职能,为前台业务提供支撑及解决方案。

领域驱动设计(英语:Domain-driven design,缩写 DDD)是一种通过将实现连接到持续进化的模型来满足复杂需求的软件开发方法。领域驱动设计的前提是:

  • 把项目的主要重点放在核心领域(core domain)和域逻辑

  • 把复杂的设计放在有界域(bounded context)的模型上

  • 发起一个创造性的合作之间的技术和域界专家以迭代地完善的概念模式,解决特定领域的问题

领域驱动设计是一种由域模型来驱动着系统设计的思想,不是通过存储数据词典(DB表字段、ES Mapper字段等等)来驱动系统设计。领域模型是对业务模型的抽象,DDD是把业务模型翻译成系统架构设计的一种方式。

我理解就是业务拆分和业务边界划分,之后进行架构设计,比较浅的认识。

组件,或者叫程序集,是指一种能够被独立部署的二进制单元,一般是以DLL的形式存在的。针对大型的软件系统,良好的组件设计能够把系统分解为一些小的组件,从而使每个开发团队都可以只关注单个的组件而无需关心整个系统。

组件设计需要遵守如下原则:

 

  1. 重用-发布等价原则(REP)

即重用粒度就是发布粒度。一个组件中的类要么都是可以重用的,要么就都不可以重用。

 

  1. 共同重用原则(CRP)

一个组件中的所有类应该是共同重用的,如果重用了组件中的一个类就应该重用组件中的所有类。即放入一个组件中的类是不可分开的,仅仅依赖其中一部分类的情况是不存在的。

 

  1. 共同封闭原则(CCP)

即,一个组件不应该包括多个引起变化的原因。组件中所有类对同一种性质的变化是共同封闭的,一个变化如果对一个封闭的组件产生影响,则将对该组件中的所有类产生影响。但对其他组件将不产生影响。该原则类似开放封闭原则,即对修改应该是封闭的,但对扩展应该是开放的。

 

  1. 无环依赖原则

在组件的依赖关系图中不能出现环。通过将系统划分为不同的可发布组件,每个组件作为一个可工作单元有一个或一组开发人员负责。完成之后发布给其他开发人员使用,并通过赋予该组件一个版本号来跟踪该组件。对该组件的更改产生的影响不应该必须扩展到其他组件。

 

  1. 稳定抽象原则(SAP)

组件的抽象程度应该与其稳定程度保持一致。即,一个稳定的组件应该也是抽象的,这样他的稳定性就不会无法扩展。另一方面一个不稳定的组件应该是具体的,因为他的不稳定性使其内部代码更易于修改。因此如果一个组件是稳定的,那他就应该包含一些抽象类,这样就可以对他进行扩展。



发布于: 2020 年 08 月 13 日阅读数: 54
用户头像

GunShotPanda

关注

JAVA开发 2019.09.03 加入

This is a letter for myself, for my future, for the past, for the better man of (health) Just got to do you and nobody else

评论

发布
暂无评论
架构师训练营week10 作业