[Skill]程序员画图参考——流程图、时序图、算法原理图和系统架构图

前言

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

  • process on
  • ppt

系统架构图

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


[Skill]程序员画图参考——流程图、时序图、算法原理图和系统架构图
image

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


[Skill]程序员画图参考——流程图、时序图、算法原理图和系统架构图
image

流程图

简单业务流程图:


[Skill]程序员画图参考——流程图、时序图、算法原理图和系统架构图
image

加上接口的流程交互图:


[Skill]程序员画图参考——流程图、时序图、算法原理图和系统架构图
image

接口交互图

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


[Skill]程序员画图参考——流程图、时序图、算法原理图和系统架构图
image

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


[Skill]程序员画图参考——流程图、时序图、算法原理图和系统架构图
image

时序图

[Skill]程序员画图参考——流程图、时序图、算法原理图和系统架构图
image

程序流程图

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


[Skill]程序员画图参考——流程图、时序图、算法原理图和系统架构图
image

算法图

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

  • boosting


    [Skill]程序员画图参考——流程图、时序图、算法原理图和系统架构图
    image
  • k折交叉验证


    [Skill]程序员画图参考——流程图、时序图、算法原理图和系统架构图
    image
  • 随机森林


    [Skill]程序员画图参考——流程图、时序图、算法原理图和系统架构图
    image

总结

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