我们在组装的同时,要想办法满足外部多变的需求与场景,那么就要求我们的组件具备可配置的能力,这也是形成组件的必要条件。举个简单的例子,奶茶店里最基本的产品是奶茶,但是为了满足不同客户的口味,在基础的奶茶中添加椰果形成珍珠奶茶,添加布丁形成布丁奶茶。奶茶这种基础产品通过不同的配置项(椰果、布丁)进行组合成符合不同人群的不同产品。
在抽离配置的时候我们需要进行有效甄别,好的配置项一定能通过不同的配置值满足足够多的个性化特性。倘若抽离出来的配置项没有变化,抽离就只能增加开发成本而已。一个最简单的辨别方法是:在可以预见的场景中,某个配置项的值集数量大于2,则此配置项合理。
同时,我们要关注配置项的作用范围,有些是用来控制程序本身的行为的,例如系统的一些降级开关;还有的配置是为了满足不同的业务需求,这两种配置项需要区别对待。划分好作用域以后要根据配置项的变更频率以及影响范围来确定到底是用静态配置还是动态配置进行实现。一些关键性的配置变更是否需要引入审批机制从而杜绝配置问题导致的系统bug也是需要考量的因素。
当我们的配置足够多的时候,可以考虑引入统一配置中心来降低“抽离配置”这一通用化操作。将配置进行集中统一管理,满足复用性需求,从而降低重复开发的成本,这也符合组件化思想。