前言

前段时间一直在找工作,面试过程终于到了不少问题。有些是自己会的,有些是自己看过却无法整理出来的(说到底是理解不够头测,记忆不够深刻)。当然还有些是完全懵逼的。下面就来说下经常被问及,自己却无法当场整理出来的一个问题。那就是让你画出自己做过的项目的一个整体架构图。

架构图-Before

最开始一次我被问及这个问题的时候我就觉得这个好像没什么大不了的,不就是随便几个比划下就好的事情么。于是就边讲便画,最初弄出来的架构图是这么个样子,或许当时画出来的比这个还烂。

架构图-After

这个架构图估计让大家看还是非常不直观的,于是乎自己就去看书看博客,参考了下别人的架构图都是怎么画的。修炼出如下正果:

对比总结

对比前后两个架构图以及自己在网上做的一些调查。个人总结了下架构图的作用以及如何才能画好一个架构图。

架构图的好处

个人认为画好一个架构图可以让人把项目更容易说清楚,让人清楚的了解到系统有哪几个部分,各个部分都做些啥,相互之间的关系是什么,之间的流程走向怎么样。这都是非常直观的。

如何画好一个架构图

  1. 首先需要明确画图的目的和类型(业务 or 技术, 整体 or 局部)
  2. 其次需要确定实现该目的的关键因素(eg. 服务 缓存 中间件)
  3. 然后选择合适的表达方法(eg. 流程 网状 方格)
  4. 最后开始画图,需要注意画图过程需要需从到小。即先画好大的模块,再填充小模块。