SREWorks云原生数智运维工程实践-SREWorks 介绍篇-SREWorks前端低代码工程设计(下)

简介: SREWorks云原生数智运维工程实践-SREWorks 介绍篇-SREWorks前端低代码工程设计

八、 动态表单

 

1. 表单工厂

 

页面交互还有重要的一环:表单数据的交互。sw-frontend提供了近三十种输入形式的表单项以供表单设计选择使用,对于Form表单提供了界面化的属性配置如:表单项类型、是否展示、表单项数据源、表单项条件渲染、表单项label、表单项key,表单拖拽排序,动态添加表单项等。

 

image.png

 

image.png

 

对于表单数据的编辑回填以及表单和页面的数据流以及action交互,也做了模型化的抽象处理,这个在后面页面操作章节做详细介绍。

 

2. 过滤器/表单Action

 

对于页面的表单Action,如新增、编辑等,sw-frontend抽象为单独的操作区块,每个操作区块创建时会生成unikey,在页面组件工具栏区添加好操作button后,可以通过页面交互或源码编辑的形式建立绑定关系。

 

image.png

 

源码视角下,在table组件的toolbar字段下,“新建应用”button以blockId的形式跟新建应用的表单操作区块建立了绑定关系;当模板引擎解析到toolbar工具栏,会用该blockId获取到该操作区块的配置,然后根配置以表单工厂函数加载对应表单项并对其表单项值初始化。

 

image.png

 

3. 过滤器

 

过滤器是对传统页面开发条件中过滤表单的一种抽象,在设计器中对过滤器的定义和action表单操作大体一致,只是过滤器没有表单提交地址,关联组件如table的过滤刷新,是经由过滤器将表单项的字段值投递到参数阈,table的数据源获取执行器进而通过侦听对比参数阈的关联字段值的变化重新拉取数据,来间接完成表格数据的过滤查询操作;而action操作则是将表单提交到后端地址,确认成功提交后通过callback来完成参数阈投递更新,间接完成组件的数据刷新操作。

 

image.png

过滤器

 

image.png

action操作

 

 

 

4. 数据源

 

sw-frontend提供了灵活的数据流处理机制,降低对接口的数据格式及参数的固定要求,使应用富客户端化,这也是serverless体验的关键一环:在此用户可以灵活定义组件/页面节点数据源类型,提供类似GraphQL的模式,在设计器中对返回数据进行灵活处理。

 

image.png

 

对于数据源为API格式的地址中使用$变量名,会统一从参数阈中渲染替换,然后获取组件数据源的数据;同时提供请求前置函数和请求后置函数的执行钩子,在这里可以进行数据的拆解或组装以及写入一些业务逻辑代码。

 

image.png

 

九、 页面操作(Action)

 

页面操作是低代码工程设计里面的重要一环,承载着很大一部分运维需求场景,sw-frontend将页面操作抽象为四个大的类别:工程内置操作类,过滤器类,表单提交类,超链跳转类。

 

image.png

 

1. 工程内置操作类

 

sw-frontend在组件的工具栏内置了若干通用的按钮类的操作,根据操作类型map,识别相应操作进行渲染。典型的如“组件刷新”操作,用户在界面添加该按钮,配置唯一识别字段“__refresh__”,即可完成组件刷新操作的配置,该刷新Button通过触发参数阈改变事件,间接完成组件的数据刷新操作。


 

2. 超链跳转类

 

超链跳转类别的操作,常用于表格等组件的行内操作,一般以JSXRender的形式进行配置,渲染为Button/Link。进行路由跳转或者超链跳转时,表格行内数据可以作为传入参数使用。

 

3. 过滤器类

 

过滤器本质而言是对传统开发方式下页面查询的一种抽象组件本身定义有数据源,过滤器的职能是触发组件重新获取数据。在sw-frontend中,过滤器的表现形式可以是一组tab、一组表单项。

 

以表单类过滤器为例:用户在填充各过滤条件之后,“提交”操作本质并没有直接的提交地址,而是进行表单参数的投递--改变节点参数阈,组件通过监听参数阈关联字段的改变,重新拉取数据,完成传统页面的查询操作。

 

4. 表单提交类

 

表单操作承载了大部分的页面操作,sw-frontend将常规的“增”、都抽象为表单提交类的事件,对这类Action操作,在完成和服务端交互后,以callback的形式,进行节点参数阈字段的投递,以触发数据渲染类组件的刷新从而完成“增”、类的操作,如下两图分别为Action操作定义和运行时渲染界面:

 

image.png

 

image.png

 

其中在进行数据编辑时的表单数据回填,大多数场景为列表类数据的编辑:定义在行内的“编辑”操作会绑定一个表单Action区块;在点击事件发生时,会将该行内数据对象rowData与当前节点参数阈合并,作为actionParams传入该Action表单区块,表单区块通过读取actionParams的对应字段value作为各表单项的initValue,完成数据回填。

 

十、 节点参数域

 

节点参数阈是以Redux状态管理机制为依托,建立路由节点页面共享参数对象nodeParams,节点页面各组件通过对nodeParams的修改和对应字段侦听来间接完成组件间的信息传递和事件交互。

 

sw-frontend在节点页创建之初,会初始化节点参数域:nodeParams;在节点页面的生命周期内,也会将url中变量参数,一些页面交互产生的runtime参数以及外部函数投递来的参数整合到节点参数域中来。

 

image.png

 

随之组件在经过统一数据源处理器获取数据流渲染之后,会对节点参数阈的target字段值通过监听对比,以触发数据reload刷新机制,重新获取数据源数据;同时页面的一些action表单操作,也是通过参数阈投递更新目标字段值进行进行间接触发相应组件的reload刷新渲染。

 

image.png

 

十一、 组件扩展

 

sw-frontend提供了声明式内置组件的注册机制,同时开辟了用户自定义组件的入口,用户可以将一些常用的自定义组件嵌入到我们的组件列表,以供前端设计器统一调拨;当前自定义组件以JSXRender的方式进行执行,可以直接书写JSX代码,同时能够识别antd组件,赋予用户更加灵活的页面渲染能力。

 

image.png

 

十二、 愿景与规划

 

现sw-frontend已内置运维场景常用的基础组件,图表组件,landing组件,布局组件等五十余个组件,除此之外还开放了用户自定义简单JSX组件的入口,让用户对自定义组件进行编辑管理,以拓展组件扩展和插拔使用的空间。同时动态加载远程组件,建立运维组件生态市场也纳入到了后面的版本规划中;以期能够共建打造出一个丰富共享的运维组件生态来,这也是我们将其开源的一个初衷愿景。

 

版本动态

 

我们会根据工作项目节奏,持续对功能进行完善优化和升级。近期发布的版本加入了页面模板保存和从模板快速创建的功能,以进一步聚焦“复用”,提升开发效率。

 

image.png

 

相关文章
|
8天前
|
运维 监控 Devops
DevOps文化下的自动化运维实践
本文将探讨在DevOps文化背景下,自动化运维的重要性及其实现方式。通过分析自动化运维的优势和挑战,文章提供了具体的实施策略和案例,旨在帮助读者理解如何在DevOps实践中融入自动化运维,以提高软件开发和部署的效率与质量。
|
1天前
|
机器学习/深度学习 数据采集 人工智能
智能化运维的探索与实践:AI在IT运维中的应用
【6月更文挑战第19天】随着人工智能技术的不断成熟,其在IT运维领域的应用也愈发深入。本文将探讨AI技术如何赋能传统IT运维,提升效率和响应速度,实现故障预测、自动化处理及优化决策。通过分析AI在运维中的实际应用案例,我们能更好地了解其潜力与挑战,并预见未来智能化运维的发展路径。
|
22天前
|
运维 监控 Devops
构建高效自动化运维系统:DevOps在企业级应用的实践
【5月更文挑战第30天】 随着信息技术的飞速发展,企业对软件交付速度和稳定性的要求越来越高。传统的运维模式已无法满足快速迭代和高效稳定的需求,因此,本文将探讨如何通过实施DevOps文化、流程和工具,构建一个高效的自动化运维系统。文章将详细描述DevOps的核心理念、关键技术组件以及如何在组织中落地实施策略,旨在帮助企业提升运维效率,加速产品的上市时间,同时保证系统的高可用性和稳定性。
|
22天前
|
运维 Kubernetes 持续交付
构建高效自动化运维体系:基于容器技术的持续集成与持续部署实践
【5月更文挑战第30天】随着云计算和微服务架构的兴起,传统的运维模式已难以满足快速迭代和高可用性的需求。本文探讨了如何利用容器技术构建一个高效、可靠的自动化运维体系,重点分析了Docker和Kubernetes在这一过程中的关键作用,并提出了一套基于这些技术的持续集成(CI)与持续部署(CD)解决方案。通过实际案例和操作步骤的详细阐述,文章为读者提供了一种实现自动化运维的有效途径,同时对未来运维技术的发展趋势进行了展望。
|
22天前
|
运维 Kubernetes 持续交付
构建高效自动化运维体系:基于Docker和Kubernetes的实践
【5月更文挑战第30天】 在当今的快速迭代和持续部署的软件发布环境中,自动化运维的重要性愈发凸显。本文旨在探讨如何利用容器化技术与微服务架构,特别是Docker和Kubernetes,来构建一个高效、可伸缩且自愈的自动化运维体系。通过详细分析容器化的优势及Kubernetes的集群管理机制,文章将提供一个清晰的指南,帮助读者理解并实现现代软件部署的最佳实践。
|
3天前
|
人工智能 运维 大数据
现代化运维管理实践与挑战
在当今快速发展的科技领域,现代化运维管理已成为企业发展中不可或缺的一环。本文将探讨现代化运维管理的重要性,以及在实践中所面临的挑战和应对方法,旨在帮助读者更好地理解和应用运维管理的最佳实践。
8 0
|
7天前
|
运维 Prometheus 监控
现代IT运维的自动化趋势与实践
在当今数字化转型的浪潮中,IT运维正经历着一场深刻的变革。本文探讨了现代IT运维中的自动化趋势,详细阐述了自动化技术在运维中的应用,通过具体案例展示了自动化工具如何提高效率、降低成本,并确保系统的稳定性和安全性。
|
1月前
|
运维 Linux 程序员
最全树莓派4B安装64位Linux(不用显示器键盘鼠标),Linux运维面试送分题
最全树莓派4B安装64位Linux(不用显示器键盘鼠标),Linux运维面试送分题
最全树莓派4B安装64位Linux(不用显示器键盘鼠标),Linux运维面试送分题
|
18天前
|
运维 Linux Shell
运维:Linux服务器崩了怎么办,快来看看这份”急救命令指南“吧!
当服务器出现问题,如崩溃、内存耗尽或CPU使用率过高时,运维工程师需要保持冷静,并通过一系列Shell命令来诊断和解决。首先,检查是否有异常SSH登录活动,查看`/etc/passwd`和`.bash_history`文件,以及用户最近的登录信息。接着,监控网络连接和端口,使用`netstat`和`lsof`命令找出资源占用高的进程,并查看进程启动时间和详细信息。同时,排查可能的恶意文件,检查定时任务和服务配置以确保没有异常启动项。最后,分析系统日志,如`/var/log`目录下的各种日志文件,找出潜在问题。通过这些步骤,可以有效定位和解决服务器故障。
|
1月前
|
消息中间件 运维 Linux
运维最全Linux 命令大全之scp命令_linux scp 指令(1),2024年最新从消息中间件看分布式系统的多种套路
运维最全Linux 命令大全之scp命令_linux scp 指令(1),2024年最新从消息中间件看分布式系统的多种套路