消息队列高手课
异步思想就是,当我们要执行一项比较耗时的操作时,不去等待操作结束,而是给这个操作一个命令:“当操作完成后,接下来去执行什么。”
使用异步编程模型,虽然并不能加快程序本身的速度,但可以减少或者避免线程等待,只用很少的线程就可以达到超高的吞吐能力。
后端技术面试 38 讲
UML 规范包含了十多种模型图,常用的有 7 种:类图、序列图、组件图、部署图、用例图、状态图和活动图。
类图
适用阶段:详细设计阶(主)、需求分析阶段
一个类包含三个部分:类的名字、类的属性列表和类的方法列表。
我们通常不需要把一个软件所有的类都画出来,把核心的、有代表性的、有一定技术难度的类图画出来,一般就可以了。
在需求分析阶段,也可以将关键的领域模型对象用类图画出来,在这个阶段中,我们需要关注的是领域对象的识别及其关系,所以用简化的类图来描述,只画出类的名字及关系就可以了。
序列图
适用阶段:所有
序列图则用来描述参与者之间的动态调用关系。
每个参与者有一条垂直向下的生命线,这条线用虚线表示,而参与者之间的消息也从上到下表示其调用的前后顺序关系,每个生命线都有一个激活条,只有在参与者活动的时候才是激活的。
序列图通常用于表示对象之间的交互,这个对象可以是类对象,也可以是更大粒度的参与者,比如组件、服务器、子系统等,总之,只要是描述不同参与者之间交互的,都可以使用序列图
组件图
适用阶段:概要设计
组件图通常用来描述物理上的组件,比如一个 JAR,一个 DLL 等等。在实践中,我们进行模块设计的时候更多的是用组件图。
部署图
适用阶段:概要设计
部署图是软件系统最终物理呈现的蓝图,根据部署图,所有相关者,诸如客户、老板、工程师都能清晰地了解到最终运行的系统在物理上是什么样子,和现有的系统服务器的关系,和第三方服务器的关系。
用例图
适用阶段:需求分析
反映用户和软件系统的交互,描述系统的功能需求。
状态图
适用阶段:
- 状态图要在需求分析阶段画,描述状态变迁的逻辑关系
- 详细设计阶段也要画,状态用枚举值表示,以指导具体的开发
状态图用来展示单个对象生命周期的状态变迁。
活动图
适用阶段:
- 在需求分析阶段描述业务流程
- 在概要设计阶段描述子系统和组件的交互
- 在详细设计阶段描述一个类方法内部的计算流程
活动图和早期流程图的图形元素也很接近,实心圆代表流程开始,空心圆代表流程结束,圆角矩形表示活动,菱形表示分支判断。
活动图引入了一个重要的概念——泳道。
- 活动图可以根据活动的范围,将活动根据领域、系统和角色等划分到不同的泳道中,使流程边界更加清晰。