最近,因为公司项目的原因,对一个大型的系统做了一个简要的架构分析。由于,时间上的限制,所以在这里我也只能做一个快速的分析,并没有其它的可能性。
太长不看版步骤:
- clone 项目的代码,以及相关的依赖
- 尝试编译系统
- 借助目录 + 编辑器进行初步分析
- 借助工具进行可视化分析
- 配置 IDE,进行源码分析
- 绘制架构图
- 从用户旅程验证架构正确性
- 总结输出
- 回溯版本,进一步验证
PS:这里所针对的情况是,没有现有架构图的情况。如果已经有现成的架构,那么它的步骤应该是不一样的。依我之间的经验来看,它应该是这样的:
- 寻找架构图
- 寻找相关的阅读代码文档、日记
- 其它同上
0. clone
多数情况下,把远程的代码 clone 到本地,是一件非常简单的事情。但是,并非所有的情况都是如此,因为对一个大型的系统来说,我们要面对着这么一些情况:
- 代码库过多
- 代码量过大
于是,在我所需要分析的这个系统里,它采用了 Google 的多仓库管理工具 Repo。这样就从一定程度上解决代码库过多的问题——对于我们来说,我们只需要执行一个 repo sync,它就可以帮助我们把所有的代码 clone 下来。而后,我们只需要等待几小时,或者几天,就可以下到我们的代码库了。
1. 尝试编译系统
有了代码之后,我们就可以尝试按文档的步骤来构建应用。期间,我们还需要解决一些工具上的问题,又或者是按官方的 issue 来处理一些异常情况。
与此同时,你还可能会遇到我在这个项目上遇到的问题:当前版本是无法成功构建的。
于是,我还需要重新花一天时间,再找到某一个特定版本的代码……。