架构相关的知识,不知道大家平时的关注度会有多少?基于我自己来讲的话,之前对此的注意力还是比较少的。
不过这些东西在我看来还是挺重要的,我们做测试的时候不能一头就扎进业务里面,如果能对整个系统架构有一个宏观上的理解,我相信,对于你后面的业务测试、性能测试,或者面试(别问我怎么知道,吃过亏o(╥﹏╥)o),都是会有帮助的。
今天先来梳理下架构的演进。
一、单体应用
单体应用,其实就是不管啥功能都写在一个应用里,比如电商系统里常见的用户功能、商品功能、订单功能等等。
现在回想起刚入行的时候,测试的系统就属于这种单体应用。
那是给ZF做的一个“大”项目,名头是真的大,费用应该在大几千万吧,啧啧。
项目虽然“大”,但是工期紧张、人力有限。因为公司属于国企性质,正式坑巨少,我机缘巧合的成为了其中一份子,也是唯一的测试人员。实在需要人的时候,雇佣了外包人员来一起开发和测试。
所以在这种情况下,单体应用的优点就体现出来了:
- 简单粗暴,所有功能一起打包,直接部署。
- 本地调试方便,直接启动整个项目,调试都在一个进程内,没有冗长的调用链,方便快速定位bug。
- 本地函数调用,没有网络调用的开销。
- 有问题了可以快速回滚,因为只有这一个应用。
但是现在回过头去看,这种单体应用的缺点也很明显:
- 系统耦合性高,当后面增加的功能越来越多,代码量巨增的时候,之前某个主程脑海中划分好