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

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

四、 菜单树与路由

 

sw-frontend以用户创建的各个应用为一级路由构建起整个前端工程的菜单体系,所有的页面都是依托“应用”为节点进行挂载的。下图为应用运维桌面,用户可以点击应用快捷方式进入运维应用。

 

image.png

 

运维桌面同时也是我们应用维度的其中一员即在sw-frontend的总体设计概念上:一切皆是应用。

 

image.png

 

1. 菜单节点树

 

我们将运维应用前端页面中的菜单以树形节点(nodeTree)的形式组织起来,根结点映射为应用ID。从根节点创建的子节点,则作为一级菜单,以此类推孙子节点为二级菜单。如下图数据运维平台(appID:dataops)应用所示,一级菜单为“主页、资产目录、数据资产、数据管理、数据服务、数据质量”。该页面是dataops应用前端的渲染态。

 

image.png

 

进入到dataops应用的开发态,在前端开发编辑器中,我们可以从左侧菜单节点树看到与上面菜单一一对应的内容,每个节点上挂载了该页面的具体配置,每个页面配置包含一个主页面和多个页面区块配置,维护管理在页面设计器中。

 

image.png

 

2. 动态路由生成

 

每个应用的页面菜单都抽象为一个页面节点树nodeTree,并在Node节点上可以对节点类型和菜单页布局以及权限等信息进行配置菜单/Link作为嵌套路由使用。我们将挂在在该节点的主页面和页面区块的相关配置:属性、数据源、编排等进行配置,我们称之为节点配置(nodeConfig)。

 

image.png

 

在一级路由页运行渲染时,根据应用idappId拉取对应nodeConfig,如下以“运营中心”为例,对应的应用配置如下:其中children所代表的为二级路由;config代表的是该级节点的属性配置;nodeTypePath字段作为描述节点树的上下级关联关系key每一级子路由进行渲染挂载都会依据nodeTypePath先去索引其下一级子路由nodeModel,用于装载子级的动态路由。

 

image.png

 

nodeTypePath也是作为子节点获取对应节点页面配置的索引key,用以拼接组装该节点的动态子路由。

 

image.png

 

五、 前端设计器

 

swadmin作为内置应用的一员,同时也是其他应用的母应用,一生万物,所有应用的都是通过前端设计器设计配置而来;在此可以对组件/页面进行业务字段、UI和数据源的配置,对当前应用的节点树进行编辑,以及对每级节点对应页面的组件进行属性配置、数据源绑定和布局编排工作。

 

swadmin提供了两种交互编辑方式

 

1. 可视化交互编辑

 

如下图就是在对staticPage这一应用下的一级子路由“pageScreen”页面进行开发编辑,下方弹窗区为对页面内大屏组件的属性进行可视化配置。

 

image.png

 

2. 源码编辑(JSON编辑)

 

除了可视化设计界面外,同时也提供了源码编辑,直接修改映射配置,以提供更大的灵活性;且可以在源码编辑和可视化编辑之间进行灵活切换,并保持同步的编辑态。

 

image.png

 

六、 页面布局

 

sw-frontend内置两种页面布局类型:自定义布局和流式布局自定义布局当前只在内置应用使用,暂未对外部应用开源使用。对于流式布局我们将页面抽象成一行行的容器,在新增行容器时可以自定义分割成若干区块并确定分割占比,每个区块对应一个组件容器位。

 

image.png

 

对于自定义布局,可以根据业务需要对添加进入的区块组件任意拖拉改变宽高以及布局位置:

 

image.png

 

七、 组件体系

 

sw-frontend采取声明式组件注册机制,每个内置组件由meta元数据文件和主文件两份文件构成,其中meta以json格式用来描述该组件的一些可配置属性及组件的属性默认值和组件名称、组件ID等信息用于组件的注册和loader加载;主文件则用来承接用户对组件的配置信息和数据源数据及一些外部嵌入的逻辑代码。


image.png


同时页面提供自定义组件入口,供用户自行设计一些简单的组件以JSXRender方式进行渲染,且用户可以对自定义组件进行添加删除和编辑管理。

 

image.png

 

相关文章
|
3天前
|
前端开发 JavaScript 开发工具
Web前端开发学习资料:深度探索与开发实践
Web前端开发学习资料:深度探索与开发实践
9 3
|
26天前
|
缓存 资源调度 Rust
前端效率提升实践之路
在一个B端前端项目中,开发团队面临开发效率低、交付质量和可维护性差的问题。为了解决这些问题,他们以“提效”为主题,展开了项目治理。首先,他们优化了发布和编译过程,通过更换包管理工具、减少不必要的包、使用缓存策略等方法,显著缩短了发布和编译时间。其次,团队致力于沉淀可复用物料,创建了高度配置化的组件,通过VSCode插件助手自动化配置,提高了代码复用性和开发效率。此外,他们还改进了研发流程,制定了前端、后端和产品的规范,以减少沟通成本和提高接口质量。通过这些措施,团队成功提升了开发效率,并降低了代码维护成本。
51 3
前端效率提升实践之路
|
4天前
|
缓存 前端开发 JavaScript
前端性能优化实践与工程化
前端性能优化实践与工程化
|
24天前
|
弹性计算 运维 监控
【阿里云云原生专栏】自动化运维的艺术:阿里云云原生平台的自动化运维工具集
【5月更文挑战第28天】阿里云云原生平台提供全面的自动化运维工具,涵盖监控告警、资源管理、部署更新、故障自愈、安全管理和数据备份等方面,简化运维工作,增强系统稳定性。通过智能工具集,运维人员能专注于业务优化,实现高效运维,为企业数字化转型提供有力支持。
163 3
|
1月前
|
运维 监控 JavaScript
【阿里云云原生专栏】Serverless架构下的应用部署与运维:阿里云Function Compute深度探索
【5月更文挑战第21天】阿里云Function Compute是事件驱动的无服务器计算服务,让用户无需关注基础设施,专注业务逻辑。本文详述了在FC上部署应用的步骤,包括创建函数、编写代码和部署,并介绍了运维功能:监控告警、日志管理、版本管理和授权管理,提供高效低成本的计算服务。
241 6
|
6天前
|
资源调度 前端开发 JavaScript
前端工程化实践:Monorepo与Lerna管理
**前端工程化中,Monorepo和Lerna用于大型项目管理。Monorepo集纳所有项目,便于代码共享、版本控制和CI/CD。Lerna是Monorepo工具,管理多npm包,支持独立或共享版本。安装Lerna用`npm install --save-dev lerna`,初始化后可创建、管理包,通过`lerna bootstrap`、`lerna add`、`lerna publish`等命令协同工作。Lerna配置可在`lerna.json`,与CI/CD工具集成实现自动化。
12 0
|
1月前
|
运维 监控 Cloud Native
构建高效稳定的云原生运维体系
【5月更文挑战第17天】在当今的数字化转型浪潮中,云原生技术以其弹性、敏捷和可扩展的特点成为企业IT架构的首选。然而,随之而来的复杂性也给运维工作带来了前所未有的挑战。本文将探讨如何构建一个高效且稳定的云原生运维体系,覆盖从容器化部署、微服务管理到自动化监控与故障恢复的各个方面。通过实践案例分析和最佳实践的提炼,旨在为企业运维团队提供一套行之有效的策略框架。
|
1月前
|
运维 Prometheus 监控
构建高效稳定的云原生运维体系
【5月更文挑战第17天】 在数字化转型的浪潮中,企业纷纷采纳云原生技术以提高敏捷性和弹性。本文将探讨构建一个高效且稳定的云原生运维体系的关键要素,包括自动化、监控、日志管理、灾难恢复和持续学习等方面。通过深入分析这些要素及其相互作用,旨在为运维团队提供一套实用的策略框架,以应对不断变化的技术挑战,确保业务连续性和系统可靠性。
|
1月前
|
运维 监控 Cloud Native
构建高效稳定的云原生运维体系
【5月更文挑战第17天】在数字化转型的浪潮中,企业纷纷将业务迁移到云平台以获得更大的灵活性和扩展性。然而,随之而来的是日益复杂的运维管理挑战。本文旨在探讨如何构建一个高效且稳定的云原生运维体系,通过自动化、微服务架构和持续集成等关键技术手段,实现系统的高可用性和敏捷性。文章首先分析了现代运维面临的主要问题,接着详细介绍了云原生运维的核心组件和实践原则,并通过案例分析展示了这些策略在实际中的应用效果。
|
25天前
|
敏捷开发 设计模式 前端开发
实践总结|前端架构设计的一点考究
本文总结了作者在日常/大促业务的“敏捷”开发过程中产生的疑惑,并尝试做出思考得到一些解决思路和方案。在前端开发和实践过程中,梳理了一些简单设计方案可以缓解当时 “头疼” 的几个敏捷迭代问题,并实践在项目迭代中。