源自共享
我觉得配置化来源于共享,是为了更好的实现共享化。
为了提升开发效率,我们通过对代码的封装,抽象出一系列可共享的单元。合理的封装大大的降低了代码冗余,从而提升了系统的性能和可维护性。
不过,不能追求共享的极致,如果封装过多,拆分过细反而会降低可维护性。
同时,共享离不开配置。小到一个组件,大到一个页面/项目,我们都是通过支持配置不同的参数来实现共享的目的。
配置化细分
- 组件级别的配置:主要是合理的设计参数,使之覆盖多个场景,并具有可拓展性。
- 页面级别的配置:
Url
参数算一种,但是对于较复杂的配置,可以使用单独的js/json
配置文件。 - 项目级别的配置:比如云平台,初始化项目的脚手架。
组件级别
对于组件级别配置,不能过于臃肿。对于差异较大,对组件改造较大的场景,根据实际情况,可考虑通过以下方式实现:
- 直接私有定制。
- 抽象新的可共享组件。
- 基于原有共享组件二次封装。
项目级别
SaaS云平台 可能是当前最完美的项目/系统级别复用的技术场景了。
脚手架 算项目级别复用的一种配置化场景,通过 模版项目 + 配置文件 + 生成脚本,初始化一个项目。
云平台
云计算平台也称为云平台,是指基于硬件资源和软件资源的服务,提供计算、网络和存储能力。其根本其实也是为了共享。云平台服务主要分为以下三种:
- 基础架构即服务 (
IaaS
) 是一种云计算产品,供应商为用户提供对服务器、存储和网络等计算资源的访问。组织可以在服务提供商的基础架构中使用自己的平台和应用。 - 平台即服务 (
PaaS
) 是一种云计算产品,为用户提供云环境,用于开发、管理和交付应用。除存储器和其他计算资源以外,用户能够使用预构建工具套件,开发、定制和测试自己的应用。 - 软件即服务 (
SaaS
) 是一种云计算产品,为用户提供对供应商云端软件的访问。用户无需在其本地设备上安装应用。相反,应用驻留在远程云网络中,通过 Web 或 API 进行访问。通过应用,用户可以存储和分析数据,并可进行项目协作。
页面级别
页面级别的配置化,当然也是为了实现页面级别的共享。根据配置化的程度或者方式,可以大致分为以下两种:
url
参数:我们大部分url
参数是为了在页面之间进行参数传递,但也有许多用于页面共享的场景。比如status
,disabled
这类参数,常用于编辑、查看、新增数据共享同一个页面。- 配置文件:
url
参数只适用于一些简单的配置,如果一个页面需要配置的信息较多,最好创建单独的配置文件。
如果要使用配置文件,为了可维护性和可读性,还是需要制定一定的标准和规范,合理的设计配置文件。
配置文件一些建议:
- 使用 JSON schema这个国际公认标准。
- 配置场景分类,不同场景约定不同配置格式:比如 独立的功能模块 可以通过 switch(开关);
form
表单:开源框架 formRender。