时序图

使用 markdown语法绘制路程图

一笑奈何 提交于 2020-02-08 05:12:04
之前我写博客都是使用上传图片的方式来展示流程图,这种方法比较麻烦,还要自己画,考虑到markdown 语法非常流行,越来越多的人使用 markdown 来写csdn 博客,所以我想能不能用 markdown 快速的绘制流程图呢?答案是肯定的,本篇博客讲述如何使用markdown 语法来进行流程图绘制,语法比较简单,画出的流程图也比较好看。 使用mermaid 绘制流程图 一般语法结果如下所示: ```mermaid graph 方向 内容 …… ``` 方向 方向一共有4个,格式为从哪到哪,每一个方向由两个大写字母表示,大写字母是四个基本方向: 上:Top,下:Bottom,左:Left,右:Right 的首字母。 从上到下:TB (有时候也写作 TD) 从下到上:BT 从左到右:LR 从右到左:RL 内容 流程图主要由以下几种元素组成: 基本节点图形 连接线 连接线上的注释 下面将分别介绍 1.基本节点图像 基本节点图像由两部分组成,一个唯一的id,用于标记节点的身份;节点内的注释内容。基本图像如图所示 矩形 圆角矩形 不对称矩形 菱形 圆形 分别表示如下: 矩形的情况:id1[矩形] 圆角矩形的情况:id2(圆角矩形) 不对称矩形情况:id3>不对称矩形] 菱形情况:id4{菱形} 圆形情况:id5((圆形)) 源代码: ```mermaid graph TB id[矩形]

Activiti流程定义缓存源码分析8-流程缓存自定义原理

南楼画角 提交于 2020-02-08 02:45:51
上面我们浓墨重彩地讲述了自定义节点缓存类以及将其注入流程引擎配置类实例的过程,可能读者有个疑问?节点定义的缓存数据格式是什么呢?流程引擎执行节点的时候,又是如何获取并解析节点所缓存的数据呢?这也是接下来我们需要重点讲解的地方。任务节点的缓存信息当然是在任务需要执行的地方进行解析了,比如任务的完成操作或者任务节点的入库操作。关于这一点读者可以参考之前的章节。在此我们直接找到任务节点的行为执行类UserTaskActivityBehavior的执行函数execute,相关代码如代码清单x-所示。 代码清单x-UserTaskActivityBehavior.java --------------------------------------------------------------------------------------------------------------------------- public void execute(ActivityExecution execution) throws Exception { ... if (Context.getProcessEngineConfiguration().isEnableProcessDefinitionInfoCache()) {#-1 ObjectNode taskElementProperties

UML各种图总结-精华

别来无恙 提交于 2020-01-28 13:43:20
UML各种图总结-精华 UML(Unified Modeling Language)是一种统一建模语言,为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。下面将对UML的九种图+包图的基本概念进行介绍以及各个图的使用场景。 一、基本概念     如下图所示,UML图分为用例视图、设计视图、进程视图、实现视图和拓扑视图,又可以静动分为静态视图和动态视图。静态图分为:用例图,类图,对象图,包图,构件图,部署图。动态图分为:状态图,活动图,协作图,序列图。   1、用例图(UseCase Diagrams):   用例图主要回答了两个问题:1、是谁用软件。2、软件的功能。从用户的角度描述了系统的功能,并指出各个功能的执行者,强调用户的使用者,系统为执行者完成哪些功能。   2、类图(Class Diagrams):     用户根据用例图抽象成类,描述类的内部结构和类与类之间的关系,是一种静态结构图。 在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。    各种关系的强弱顺序: 泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖   2.1.泛化     【泛化关系】

从0开始手撸HPDL -1414驱动

我的未来我决定 提交于 2020-01-27 07:43:50
  暑假的时候被人安利了HPDL1414这款数码管,当时还不清楚这个数码管是啥,就是看外形比较中意吧。最近因为武汉发生了新型肺炎这破事,于是这个买回来吃灰了半年的数码管被我翻出来了,准备写一写他的驱动。找到淘宝卖家要到了一份datasheet才知道他的名字是HPDL-1414。带着这个名字去百度搜索一下,也能搜索到一些文章,用HPDL-1414作电脑状态显示等。   这些文章我也点进去看了,其中电脑状态显示的那个是开源的,但是我没有积分,故没有下载他的代码,我只看了文章。文章对底层也没有一个清晰明确的讲解,很多地方都是一笔带过,可能对于萌新电子爱好者,以及其他非电子类的朋友而言比较难于理解。所以本文会结合1414的datasheet来讲解如何驱动1414数码管。   首先来说说要准备的东西:主控一块、3.3v电源一个、5v电源一个、1414数码管一个、杜邦线若干、焊台、焊锡、洞洞板、2.54mm间距的电子积木插座(圆孔排母)若干、2.54mm间距排针若干。   我使用的主控是STM32F429IGT6,这块芯片要用3.3V供电,然而1414使用的是5V( Typ )供电,因此要准备两个电源。但是如果你使用的是51或者Arduino这类本身就是5V供电的芯片,可以共用一个电源。   洞洞板、插座、排针这些自然是制作一个固定1414的底座,并且能引出1414的引脚,通过杜邦线与主控相连

你为什么要看源码?如何看源码?

喜欢而已 提交于 2020-01-20 22:39:02
前言 本文主要内容摘自加多大神的《Java并发编程之美》的前言内容,讲了为什么要看源码和如何看源码,讲的很精炼。这部分是属于源码学习方面的方法论,所以单独摘录下来并且总结。 为什么要看源码? 我们在做项目的时候一般会遇到下面的问题: 不知道如何去设计。比如刚入职场时,来一个需求需做概要设计,不知如何下手,不得不去看当前系统类似需求是如何设计的,然后仿照去设计。 设计的时候,考虑问题不周全。相比职场新手,这类人对一个需求依靠自己的经验已经能够拿出一个概要设计,但是设计中经常会遗漏一些异常细节,比如使用多线程有界队列执行任务,遇到机器宕机了,如果队列里面的任务不存盘的话,那么机器下次启动的时候这些任务就丢失了。 对于这些问题,说到底主要还是因为 经验不够,而经验主要从项目实践中积累 ,所以招聘单位一般都会限定工作时间大于3年,因为这些人的项目经验相对较丰富,在项目中遇到的场景相对较多。工作经验的积累来自于年限与实践,然而 看源码可以扩展我们的思路,这是变相增加我们经验的不错方法。虽然不能在短时间内通过时间积累经验,但是可以通过学习开源框架、开源项目来获取经验 。 另外,进职场后一般都要先熟悉现有系统,如果有文档还好,没文档的话就得自己去翻代码研究。如果之前对阅读源码有经验,那么在研究新系统的代码逻辑时就不会那么费劲了。 还有一点就是, 当你使用框架或者工具做开发时

Markdown写出高大上时序图

馋奶兔 提交于 2020-01-16 07:26:57
上一篇文章分享了如何使用Markdown写流程图,继续挖掘md毫不含糊的功能,再分享一个md格式的时序图。 数据中台->缓存: 读取缓存 缓存->数据中台: 返回缓存 Note left of 数据中台: 如果没有读到缓存,就直接调用数据服务 数据中台->消息队列: 请求更新缓存 消息队列->数据服务: 触发更新缓存 数据服务->消息队列: 更新缓存 显示效果: md在线编辑器: https://www.mdeditor.com/ 来源: 51CTO 作者: wx5b3c0a4298f7b 链接: https://blog.51cto.com/13851865/2467106

UML中的序列图(时序图)

ε祈祈猫儿з 提交于 2020-01-16 04:14:04
序列图将交互关系表示为一个二维图。纵向是时间轴,时间沿竖线向下延伸。 横向轴代表了在协作中各独立对象的类元角色。类元角色用生命线表示。当对象存在时,角色用一条虚线表示,当对象的过程处于激活状态时。生命线是一个双道线。 消息用从一个对象的生命线到还有一个对象生命线的箭头表示。箭头以时间顺序在图中从上到下排列。 序列图中涉及的元素: 生命线 生命线名称可带下划线。 当使用下划线时,意味着序列图中的生命线代表一个类的特定实例 同步消息 发送人在它继续之前,将等待同步消息响应。 异步消息 在发送方继续之前,无需等待响应的消息。 凝视 约束 约束的符号非常easy。格式是: [Boolean Test] 组合片段 抉择(Alt)   抉择用来指明在两个或很多其它的消息序列之间的相互排斥的选择。相当于经典的if..else..抉择在不论什么场合下仅仅发生一个序列。 能够在每一个片段中设置一个临界来指示该片段能够执行的条件。else 的临界指示其它不论什么临界都不为 True 时应执行的片段。 假设全部临界都为 False 而且没有 else,则不执行不论什么片段。      选项(Opt) 包括一个可能发生或不发生的序列 循环(Loop) 片段反复一定次数。 能够在临界中指示片段反复的条件。 并行(Par) 来源: https://www.cnblogs.com/yutingliuyl/p

UML时序图

别说谁变了你拦得住时间么 提交于 2020-01-10 14:57:32
时序图(Sequence Diagrams) 时序图描述对象之间消息的发送顺序,强调时间顺序。时序图是一个二维图,横轴表示对象,纵轴表示时间,消息在各对象之间横向传递,依照时间顺序纵向排列。用箭头 表示消息、用竖虚线表示对象生命线。 时序图的作用 1、展示对象之间交互的顺序。将交互行为建模为消息传递,通过描述消息是如何在对象间发送和接收的来动态展示对象之间的交互; 2、相对于其他 UML 图,时序图更强调交互的时间顺序; 3、可以直观的描述并发进程。 时序图组成元素 角色(Actor) 系统角色,可以是人、机器、其他系统、子系统;在时序图中用表示。 对象(Object) 1、对象的三种命名方式 第一种方式包括对象名和类名 第二种方式只显示类名,即表示它是一个匿名对象, 第三种方式只显示对象名不显示类名, 2、命名方式的选择 三种命名方式均可,哪种最容易让阅读该时序图的人理解,就选择哪种。 3、对象的排列顺序 对象的左右顺序并不重要,但是为了作图清晰整洁,通常应遵循以下两个原则:把交互频繁的对象尽可能的靠拢;把初始化整个交互活动的对象放置在最左端 生命线(Lifeline) 在时序图中表示为从对象图标向下延伸的一条虚线,表示对象存在的时间。 控制焦点(Focus of Control) 又称为激活期,表示时间段的符号,在这个时间段内对象将执行相应的操作。可以理解为 Java

基于FPGA的UART回环设计(2)

心不动则不痛 提交于 2020-01-10 07:26:04
基于FPGA的UART发送设计 uart_tx模块的时序图 uart_tx模块的代码 uart_tx测试模块的代码 结束语 uart_tx模块的时序图 从上一篇文章中,我们已经学习了uart_rx的设计,也已经附上了详细的代码,详细同学们已经学会了该模块的设计。这篇文章我们主要介绍uart_tx模块的设计,与上篇文章相同,我们将先给出模块的时序图,再给出相应的代码,最后给出模块的测试代码。uart_tx模块的时序图如下: uart_tx模块的代码 这里没有什么特别解释,同学们结合时序图与代码肯定可以看懂。这里直接上代码: `timescale 1 ns / 1 ps // ********************************************************************************* // Project Name : OSXXXX // Author : zhangningning // Email : nnzhang1996@foxmail.com // Website : // Module Name : uart_tx.v // Create Time : 2020-01-04 14:20:35 // Editor : sublime text3, tab size (4) // CopyRight(c) : All