2022-02-18_星期五

消息队列高手课

步思想就是,当我们要执行一项比较耗时的操作时,不去等待操作结束,而是给这个操作一个命令:“当操作完成后,接下来去执行什么。”

使用异步编程模型,虽然并不能加快程序本身的速度,但可以减少或者避免线程等待,只用很少的线程就可以达到超高的吞吐能力。

后端技术面试 38 讲

UML 规范包含了十多种模型图,常用的有 7 种:类图、序列图、组件图、部署图、用例图、状态图和活动图。

类图

适用阶段:详细设计阶(主)、需求分析阶段

一个类包含三个部分:类的名字、类的属性列表和类的方法列表。

我们通常不需要把一个软件所有的类都画出来,把核心的、有代表性的、有一定技术难度的类图画出来,一般就可以了。

需求分析阶段,也可以将关键的领域模型对象用类图画出来,在这个阶段中,我们需要关注的是领域对象的识别及其关系,所以用简化的类图来描述,只画出类的名字及关系就可以了。

20220218190407.png

序列图

适用阶段:所有

序列图则用来描述参与者之间的动态调用关系。

每个参与者有一条垂直向下的生命线,这条线用虚线表示,而参与者之间的消息也从上到下表示其调用的前后顺序关系,每个生命线都有一个激活条,只有在参与者活动的时候才是激活的。

序列图通常用于表示对象之间的交互,这个对象可以是类对象,也可以是更大粒度的参与者,比如组件、服务器、子系统等,总之,只要是描述不同参与者之间交互的,都可以使用序列图

组件图

适用阶段:概要设计

组件图通常用来描述物理上的组件,比如一个 JAR,一个 DLL 等等。在实践中,我们进行模块设计的时候更多的是用组件图。

20220218190625.png

部署图

适用阶段:概要设计

部署图是软件系统最终物理呈现的蓝图,根据部署图,所有相关者,诸如客户、老板、工程师都能清晰地了解到最终运行的系统在物理上是什么样子,和现有的系统服务器的关系,和第三方服务器的关系。 20220218190652.png

用例图

适用阶段:需求分析

反映用户和软件系统的交互,描述系统的功能需求。

20220218190723.png

状态图

适用阶段:

  • 状态图要在需求分析阶段画,描述状态变迁的逻辑关系
  • 详细设计阶段也要画,状态用枚举值表示,以指导具体的开发

状态图用来展示单个对象生命周期的状态变迁。

20220218190735.png

活动图

适用阶段:

  • 在需求分析阶段描述业务流程
  • 在概要设计阶段描述子系统和组件的交互
  • 在详细设计阶段描述一个类方法内部的计算流程

20220218190827.png

活动图和早期流程图的图形元素也很接近,实心圆代表流程开始,空心圆代表流程结束,圆角矩形表示活动,菱形表示分支判断。

活动图引入了一个重要的概念——泳道。

  • 活动图可以根据活动的范围,将活动根据领域、系统和角色等划分到不同的泳道中,使流程边界更加清晰。
updatedupdated2022-03-092022-03-09