一个标准但累人的时序图

386 阅读1分钟

《精通Spring4.X企业应用开发实战》的第二章开始有一处“登录模块整体流程” 的时序图。刚开始看觉得和实际流程总有些不一样, 而且感觉UML是可以填补那些不同的。所以学了PlantUML 中“时序图” 部分。把自己感觉缺少的东西添上去。 再看自以为完整的结果和作者的时序图比起来差了一大截“可读性”。

下面是我写的流程图、作者的流程图、我自己的标准而完整的PlantUML源码。比较后会发现 “会点技能不等于做好了可读性”

我的流程图.png

作者的流程图.png

hide footbox

actor User as user
boundary login.jsp as login
control LoginController as lc
participant UserService as us
participant UserDao as ud
participant LoginDao as ld
boundary main.jsp as main

autonumber
user -> login : url
login --> user: response

autonumber 1
user-> lc : username&password
activate lc
lc -> us : hasMatchUser()
activate us
us -> ud: getMatchCount()
activate ud
ud --> us: matchCount
note right: 添加了一个\n返回流程
deactivate ud
us -> lc : matchInfo

== 在这里不使用注释,而是类似于if-else的alt标签, 一下子增加了阅读难度 ==
alt !match
lc -> login: forword to login.jsp
login -> user : response

else match
autonumber 6
lc -> us : findUserByUserName()
us -> ud : findUserByUserName()
activate ud
ud --> us: user
note right: 添加了一个\n返回流程
deactivate ud
us --> lc : user
lc --> lc : 设置登录时间&Ip
activate lc
deactivate lc
lc -> us : loginSuccess()
us -> ud : updateLoginInfo()
us -> ld : insertLoginLog()
activate ld
deactivate ld
deactivate us
lc -> main : forward to main.jap
deactivate lc
main -> user : response
end