在日常工作中,80% 以上的开发者都会遇到大量重复性工作,许多人感觉自己一直在做增删改查的基础操作。Elpis 诞生的初衷,就是为了减少这些机械性的任务,让开发者能够专注于新功能的开发,从而提升技术能力。实现这一目标,模板化建站无疑发挥了关键作用。
以领域模型为基础
如上图所示,当我们开发电商系统 A、B 时,会发现含有商品管理、订单管理、客户管理等重复模块。而开发教育 A、B 时,包含视频管理、客户管理等重复模块。
Elpis 采用行业为基准进行模板配置,构建一个稳定、可扩展的平台,以支持系统构建和功能复用。
设计思路
Elpis 通过面向对象的继承机制,将通用模块进行沉淀,实现重复模块的 0 开发。最终,系统通过模板页生成对应站点,每个站点由不同的页面和配置组成。
其中,模板页包含相应的配置解析器,并使用 VueRouter 实现页面跳转。这样,开发模式也由 系统级开发 转变为 模板页开发。当已有对应模板页时,仅需调整配置或新增模块,而无需从零开始构建系统。
Dashboard(中后台) 模板页示例
模板页对中后台项目的 头部栏 进行了抽象,同时提供 setting-content 进行定制化开发,例如用户信息展示、登录、登出等功能。
页面主要分为三种类型:
- 配置页面:模板页的核心,包含搜索栏、表格展示等常见 UI 组件。
- 第三方页面:用于接入外部系统或服务。
- 自定义页面:根据业务需求进行个性化开发。
其中,配置页面沉淀了 搜索栏 和 表格展示。搜索栏包含输入框、下拉框等控件,而表格则集成了按钮、表单等功能组件。
数据源
数据源的配置在页面展示和功能实现中起到了关键作用。其配置基于 JSON Schema 规范,并通过扩展字段来控制数据在各组件中的表现形式。例如:
- searchable 字段决定某个属性是否可用于搜索。
动态组件
组件解析由 comSchema 和 comConfig 组成。
- comSchema 通过扩展字段控制字段在各组件中的展现方式,例如 createFormOption.comType 决定字段在 创建表单 时采用何种组件。
- comConfig 负责组件整体配置,例如 comConfig.createForm.title 可设置创建表单的标题。
最终,comSchema 与 comConfig 共同作用,实现高度动态化的组件配置。
总结
最终,我们来看一下 Dashboard 的完整设计方案:
通过模板化建站,Elpis 有效提升了开发效率,降低了重复工作成本,并为业务拓展提供了更高的灵活性。