在上一篇文章中,我从可伸缩性和可扩展性对应的英文术语的角度,和你分享了这两个概念的差异,并且和你详细介绍了网站的可伸缩性架构设计主要包括的内容,以及从测试人员的视角需要关注哪些点进行针对性的测试。
所以,在今天这篇文章,也是这个专栏最后一篇正文中,我会再和你详细讨论网站的可扩展性(Extensibility)架构设计。这里,我先带你一起回顾一下可扩展性的定义:
可扩展性,指的是网站的架构设计能够快速适应需求的变化,当需要增加新的功能实现时,对原有架构不需要做修改或者做很少的修改就能够快速实现新的业务需求。
从这个定义中,我们很容易就可以得出衡量网站可扩展性设计优秀与否的主要标准,就是增加新功能的时候对原有系统的影响是否足够小。
当今的商业环境决定了网站新功能开发与上线的时间周期必须非常短,如果每次添加新功能,都需要对原有系统进行大量修改,从而还会牵连出更多测试工作的话,那么你的竞争力就会被大打折扣,用一个不太恰当的比喻就是直接“输在了起跑线上”。
其实,你我都清楚添加新功能时必须要对系统进行大幅度修改的原因是,系统架构设计上的耦合性。那么,有什么“好的”架构设计方案可以使得我们添加新功能的时候,只需对原有系统做少量修改,甚至完全不需要修改吗?
咋一听起来,这就像“又要马儿跑,又要马儿不吃草”。但,其实不是的。我们往往可以通过架构上的设计优化来达到事半功倍的效果。
为了帮助你理解可扩展性,我先和你分享一个案例。