浅谈前端配置化

源自共享


我觉得配置化来源于共享,是为了更好的实现共享化。

为了提升开发效率,我们通过对代码的封装,抽象出一系列可共享的单元。合理的封装大大的降低了代码冗余,从而提升了系统的性能和可维护性。

不过,不能追求共享的极致,如果封装过多,拆分过细反而会降低可维护性。

同时,共享离不开配置。小到一个组件,大到一个页面/项目,我们都是通过支持配置不同的参数来实现共享的目的。

配置化细分


  • 组件级别的配置:主要是合理的设计参数,使之覆盖多个场景,并具有可拓展性。
  • 页面级别的配置:Url参数算一种,但是对于较复杂的配置,可以使用单独的 js/json 配置文件。
  • 项目级别的配置:比如云平台,初始化项目的脚手架。

组件级别

对于组件级别配置,不能过于臃肿。对于差异较大,对组件改造较大的场景,根据实际情况,可考虑通过以下方式实现:

  • 直接私有定制。
  • 抽象新的可共享组件。
  • 基于原有共享组件二次封装。

项目级别

SaaS云平台 可能是当前最完美的项目/系统级别复用的技术场景了。
脚手架 算项目级别复用的一种配置化场景,通过 模版项目 + 配置文件 + 生成脚本,初始化一个项目。

云平台

云计算平台也称为云平台,是指基于硬件资源和软件资源的服务,提供计算、网络和存储能力。其根本其实也是为了共享。云平台服务主要分为以下三种:

  • 基础架构即服务 (IaaS) 是一种云计算产品,供应商为用户提供对服务器、存储和网络等计算资源的访问。组织可以在服务提供商的基础架构中使用自己的平台和应用。
  • 平台即服务 (PaaS) 是一种云计算产品,为用户提供云环境,用于开发、管理和交付应用。除存储器和其他计算资源以外,用户能够使用预构建工具套件,开发、定制和测试自己的应用。
  • 软件即服务 (SaaS) 是一种云计算产品,为用户提供对供应商云端软件的访问。用户无需在其本地设备上安装应用。相反,应用驻留在远程云网络中,通过 Web 或 API 进行访问。通过应用,用户可以存储和分析数据,并可进行项目协作。

页面级别

页面级别的配置化,当然也是为了实现页面级别的共享。根据配置化的程度或者方式,可以大致分为以下两种:

  • url参数:我们大部分url参数是为了在页面之间进行参数传递,但也有许多用于页面共享的场景。比如 statusdisabled 这类参数,常用于编辑、查看、新增数据共享同一个页面。
  • 配置文件:url参数只适用于一些简单的配置,如果一个页面需要配置的信息较多,最好创建单独的配置文件。

如果要使用配置文件,为了可维护性和可读性,还是需要制定一定的标准和规范,合理的设计配置文件。

配置文件一些建议:

  • 使用 JSON schema这个国际公认标准。
  • 配置场景分类,不同场景约定不同配置格式:比如 独立的功能模块 可以通过 switch(开关);form表单:开源框架 formRender

参考文献

云服务类型介绍