中后台系统提升质量和效率的一个思路

背景

中后台项目中会存在一些配置页面需求的开发,这些需求高度相似,迭代频率低,基本结构为「搜索区域」、「表格区域」、「包含表单的弹窗」三部分组成。

cfa0ddc88b8a188df4be02e5f4cb17b4.png
image-20221027060647741
d16763605968283e094931272a1afb43.png
image-20221027060711024

其中「搜索区域」和「表格区域」的操作区交互固化,比如查询、添加、查看、删除、上线、下线。

当前开发时大都采用复制类似需求页面继而修改的方式,如下图所示。每个人都形成了自己的代码组织结构,导致虽属同一团队,但代码风格、交互实现逻辑变为了多条平行线。

5b415db31a5aaada6ffac13f2428bbcd.png
image-20221027060727389

这种迭代方式存在两点坏处:

a. 重复劳动较多,同时存在漏改的风险。易变的地方分布在页面中各个部分,修改起来不够方便,改动后存在影响到正常逻辑的风险。

b. 团队内各自抽离的不同交互方式,接手他人页面的时候需要耗费一定的理解成本,同时 code review 时无法快速的理清逻辑。

解决方案

中后台项目提效一个直接的想法就是低代码的思路:

a. 初态:抽离各个组件,定义 json 的格式,通过 json 渲染出页面。

b. 终态:开发搭建平台,通过拖拽生成 json 并且实时预览页面,开发者也可以通过预定的协议接入自己的组件。

上述两种方案除去搭建成本大之外,最大的问题就是业务开发灵活性将大大降低。

开发者将在新的规范下进行开发,不管是通过 json 配置还是配置平台生成页面,上手难度大大增加,不亚于去学习一个新的前端框架。如果新需求的交互框架没有考虑到,将花费大量的时间进行适配, 甚至超过了从零开发需求的时间。极端情况下,如果无法满足需求的交互,还存在推倒重来的风险。

基于以上考虑,我们采取一个更轻便的方案,以模版代码为基础进行后续开发,并通过脚手架进行模版的配置、拉取。

cfb4df64676ab97a05de690d81b1dfcc.png
image-20221027060745695

如上图,大家的开发流程从之前的平行线变为了网状,未来的页面的目录格式和交互方式都会统一。

由于是生成的模版代码页面而且不强依赖于模版,未来需求有大的变化也可以正常迭代。

方案设计

1.模板设计

考虑到今后有可能增加其他场景模版,设计模版要考虑到未来可以进行无缝扩展,有两种方案:

a. 按分支来保存不同场景下的模版:

优点:不同场景下通过分支来拉取不同模版,模版之间完全隔离。

缺点:缺少了 master 分支,各模版都需要自己的 master 分支进行迭代。分支之间差异较大,完全违背了 git 的迭代初心。

b. 按文件夹来保存不同场景下的模版:

优点:所有模版都存在于 master 分支,和普通项目的方式一样从 master 切出分支进行迭代。

缺点:脚手架需要一次性拉取所有模版,然后复制自己需要的模版。

考虑到拉取文件速度较快,最终选取了方案 b

各个配置页面之间虽然相似,但也会因实际情况存在细微差异,所以模版不能完全写死,需要支持动态编译,这里采用 EJS 进行编译。

EJS 是一套简单的模板语言,它没有再造一套迭代和控制流语法,只需正常的 JavaScript 语法即可实现一些条件编译、变量替换等,因此可以快速上手。

关于模版内容,核心思想是将变化与不变的内容进行抽离

我们可以将后端的接口、权限的配置、搜索框的配置、常量抽离出配置文件,将表格、搜索框、表单之间的联动方式预先写好,目录格式如下。

b52618dd8b16234d7850935475e561eb.png
image-20221027060919512

开发者只需进行后端接口的配置、搜索框的配置、表单的开发即可快速完成整个需求。

2. 架构设计

考虑到一方面脚手架整体架构和功能实现后迭代频率会逐渐降低,另一方面更新脚手架需要走 npm 包的发布流程,如果将模版内容耦合到脚手架中,每次更新都重新进行发包较为繁琐。

因此将模版单独放一个仓库,从脚手架中解耦出来,实现脚手架仓库和模版仓库分离,独立迭代,降低更新成本。

使用者通过输入命令和参数即可生成模版页面代码,脚手架内部实现拉取模版和编译,生成最终页面,架构如下:

ebc121c9be2724c73407e8eb0259b2bd.png
image-20221027060851382

3. 脚手架实现

提供 ce-cli 命令,结合用户的参数进行进行模版的编译生成,同时提供交互式的形式选择参数,降低使用者的上手难度,交互形式如下:

51be115daabf48e41a149a90cdd82dc2.png
image-20221027060958575

考虑到模版和脚手架存在强绑定关系,即如果模版更新了,但脚手架没有更新会造成一些模版逻辑未被编译的情况。因此执行命令时需要检查脚手架是否为最新版本,如果版本较低必须强制升级,中断程序的执行。(对于团队内部工具来说,始终保持最新版本才可以及时用到最新功能,这也是强制升级的原因之一)

为提高命令的执行速度,执行命令时将拉取的模版缓存到本地,并且将最新的 commit 名保存起来。第二次执行命令的时候将目前最新的 commit 和此前保存的 commit 进行比对,如果不相等则覆盖原来的模版,否则使用原来的模版即可,减少一次网络请求耗时。

总结

经过一段时间的迭代,后续有近 20 个页面用到脚手架,每需求可降低 0.5pd 的时间,更重要的是团队内相关需求的代码结构、交互实现均已统一,提升了代码质量 和 code review 的效率,团队间交替开发需求时的代码认知难度将大大降低。

code review 过程中,团队内提供相关建议,沉淀最佳实践,例如默认对象通过函数返回、公共方法的使用、项目框架一些特有操作都内置到模版中,不断提升代码质量,磨平大家之间的认知差异。

未来有新同学加入,可以在模版的基础上更快的进入开发,极大的降低对系统框架一些特有操作的认知时间,同时保证代码质量。

脚手架中的模版对主要对表格和搜索区域固化了代码逻辑,对于表单的使用我们还是通过原始的 element 表单进行开发,一些常用的规则校验、表单的逻辑每次都需要重复进行开发,经过调研目前公司内已经有多种封装好的表单,未来可以进行详细了解,最终引进到模版代码中,进一步提升开发效率。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 设计一个后台管理系统界面,需要考虑以下几点: 1. 用户体验:界面应该简洁明了,操作简便,方便用户使用。 2. 响应式设计:界面应该适配不同的屏幕大小,保证在任何设备上都能得到良好的使用体验。 3. 数据可视化:通过图表和图像等工具,使数据更容易理解和观察。 4. 权限管理:根据用户角色和权限,对不同的功能进行限制和授权。 5. 安全性:保证数据的安全,防止非法访问和操作。 这些是设计一个后台管理系统界面的基本要素,可以根据具体需求进行适当的扩展和完善。 ### 回答2: 设计一个后台管理系统界面需要考虑到以下几个方面。 首先,需要考虑到界面的整体布局和结构。后台管理系统通常需要展示大量的功能模块和菜单选项,因此,应该采用清晰的层次结构和分类标签来组织和显示这些内容,以便用户能够快速找到所需功能。 其次,考虑到后台管理系统的目标用户一般是工作人员,因此界面的设计应该以提高操作效率为主要目标。可以采用简洁明了的图标和文字,通过直观的视觉元素来引导用户进行操作,减少繁琐的操作步骤,提高用户的使用体验。 另外,后台管理系统往往需要展示大量的数据,因此在界面设计,应该合理利用数据可视化的方式,例如柱状图、饼图等图表,来展示数据,使用户能够快速了解和分析数据,方便决策和管理工作。 此外,界面的配色方案也需要考虑。一般来说,后台管理系统应该采用清爽明亮的色彩风格,以提高工作人员的工作效率和活力。同时,还需要注意配色的搭配和颜色的鲜艳度,以保证界面的美观性和可读性。 最后,需要考虑到界面的响应性和可扩展性。后台管理系统通常有很多功能模块和扩展插件,因此设计时要保证界面的稳定性和灵活性,方便将来的功能扩展和升级。 总的来说,设计一个后台管理系统界面应该注重布局结构、操作效率、数据可视化、配色方案以及响应性和扩展性,以提高用户的使用体验和工作效率。 ### 回答3: 设计后台管理系统界面需要考虑到用户的使用习惯及操作便利性。以下是我给出的设计思路: 1.整体布局:采用左侧导航栏和右侧内容区的布局方式,左侧导航栏放置系统主要功能模块的入口,右侧则显示相应模块的具体内容。 2.导航栏设计:导航栏应具备收起/展开的功能,以适应不同屏幕尺寸的需求。同时,导航栏应提供图标和文字的显示,便于用户快速识别所需功能。 3.功能模块设计:根据后台管理系统的特点,可以将功能模块分为用户管理、内容管理、数据统计等多个模块,在导航栏以菜单形式展示,用户可根据需求进行选择。 4.内容区设计:内容区需要根据所选功能模块显示相应的内容和操作界面。在内容区,可以使用表格、图表、卡片等元素,方便用户查看信息和进行相应操作。 5.搜索和筛选:为了方便用户查找信息,应在界面上提供搜索和筛选的功能。搜索功能可放置在导航栏上方,筛选功能则可以放置在内容区顶部。 6.信息展示与操作:在内容展示部分,可以提供分页和翻页功能,以便用户浏览大量信息。同时,对于信息的编辑、删除、添加等操作,可以通过按钮或右键菜单提供。 7.美观与一致性:界面设计应该注重整体美观性和一致性,采用统一的字体、颜色和样式,使用户在不同模块间切换时能够有良好的体验。 8.权限控制与安全性:后台管理系统通常涉及到敏感信息和操作,因此要考虑到权限控制和安全性。系统管理员应有权限管理功能,可以在界面进行设置。 通过以上设计思路,能够使用户在管理系统快速定位所需功能,并对相应内容进行管理和操作,提高效率和用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值