前言

在简单学习GolangC++基础语法后,我需要阅读系统源码,为了更好理解系统架构、系统内部模块交互和不同业务场景下的数据流,绘制一些简单流程图、时序图和系统架构图是有必要的。
主要工具:

  • process on
  • ppt

系统架构图

最原始的系统架构图,简单分层展示不同层次的模块,加上基础服务、公共服务和监控服务:


13946199-e2cd91ccc5381088.png
image

加上数据流的系统架构图:


13946199-932b528cd25aea47.png
image

流程图

简单业务流程图:


13946199-725806719ed5bce8.png
image

加上接口的流程交互图:


13946199-f805d78227baeb90.png
image

接口交互图

简单的多个接口交互逻辑图:


13946199-6c96851409612a4d.png
image

模块提供的内外部接口和外部依赖:


13946199-38ddb8644f833dd5.png
image

时序图

13946199-337fe60e24e5009a.png
image

程序流程图

梳理并发程序或复杂逻辑程序时可以会用到:


13946199-1f2948b2c69c5612.png
image

算法图

这部分是用ppt做的,帮助直观理解算法原理,ppt画图的自由度更高

  • boosting


    13946199-fd5f71f77766a7bb.png
    image
  • k折交叉验证


    13946199-8cd473b3c25890ec.png
    image
  • 随机森林


    13946199-dde29ba65b89485d.png
    image

总结

作为一个研发菜鸟,在阅读大型系统的源码时碰上了很多问题,很多时候并不是语法层面的问题,反而是因为快速迭代开发和系统的庞大性给我梳理系统架构和模块功能带来较大的挑战。
通过简单绘制系统的架构图、各模块之间的接口交互和时序图等,我可以更加直观地理解整个系统的运作模式,大概就是所谓的磨刀不误砍柴工。

Logo

开源、云原生的融合云平台

更多推荐