夜雨聆风学习资料网

ARTICLE · 1285420

为什么复杂企业软件需要 Workbench,而不只是 Web 页面

为什么复杂企业软件需要 Workbench,而不只是 Web 页面

过去十多年,Web 前端技术发生了很大的变化。从早期的 HTML、CSS 和 JavaScript,到Angular、React、Vue 等现代前端框架,再到各种 UI Component Library,开发一个功能完整的 Web 应用已经变得越来越容易。

但有,有一个问题始终存在:

当一个 Web 应用逐渐演变成一个复杂的企业级软件系统时,页面和组件的组织方式,是否仍然足以支撑整个应用?

一、Web 页面模式的局限

在一般的信息管理系统中,页面模式非常的有效。用户可以通过菜单进入不同页面,在页面中完成查询、编辑、提交等操作。页面之间通过路由进行切换,组件负责具体的交互和显示。

这种方式适用于业务边界清晰、交互相对独立的应用。但复杂企业软件往往不是这样。

以 PLM 系统为例,一个工程师可能需要同时处理:

  • 产品结构和 配置;
  • 工程对象及其属性;
  • 零部件的版本和生命周期;
  • CAD 模型及其关联文件;
  • 变更申请和工作流程;
  • 设计文档和工程规范;
  • 多个工程对象之间的关系。

这些工作并不是互相独立的页面操作,本质上是一个工程师的智力资源管理。用户可能需要同时打开多个对象,并且在不同视图之间切换,比较不同版本的数据,查看复杂的对象关系,并在多个编辑器中完成工作。

航空技术资料管理系统也是一样的。用户可能同时需要查看 AMM、IPC、FCOM、MEL 等技术资料,处理内容、适用性、版本、引用关系和发布状态。

航空的结构化运行手册管理和 PLM 在本质上并无不同,一个手册的编写人员通常需要同事处理:

  • 手册目录和配置;

  • 主题对象和属性;

  • 主题的版本和生命周期;

  • 主题的引用和法规的符合性关系;

  • 主题和机型手册的关联性;

  • 变更管理和工作流程;

  • 多个主题和角色、业务系统以及协同业务的复杂关系;

如果每个业务模块都按照独立 Web 页面进行设计,会出现两种情况:

1.系统规模越大,前端交互方式就越容易出现差异;

2.将用户的操作和业务对象的管理以及流程在前端绑死,后端也将僵化。

二、组件统一不等于应用统一

目前很多企业软件项目都在建设统一的 Design System 或 UI Component Library。这些都很有价值,能够统一按钮、表格、树形控件、表单、对话框和视觉规范,也可以改善界面一致性,从而能减少重复开发。但组件的统一,只能解决 UI 层的问题,并不能解决以下问题:

  • 应用如何组织多个业务模块?
  • 多个视图如何共同构成一个工作环境?
  • 用户打开的对象如何在不同视图之间共享?
  • 不同业务模块如何注册和扩展?
  • 命令、快捷键和上下文菜单如何统一管理?
  • 用户的工作布局如何保存和恢复?
  • 不同模块如何共享应用级服务?
  • 用户是在管理业务对象还是数据?
  • 系统的领域边界在哪里?

这些问题远远超出了组件库的概念,即使使用了完全相同的 UI 组件来实现一个系统应用,也仍然是由大量相互独立的页面拼接而成。

统一组件,并不意味着统一应用运行环境。

三、重新认识 Workbench

在复杂桌面软件中,Workbench 是一种成熟的架构思想,它并不是简单地把多个页面放在一个窗口里,而是通过 Workbench、Perspective、View、Editor、Command 和 Extension 等概念,组织整个应用的运行框架:

  • Workbench 提供应用工作环境;
  • Perspective 定义某种工作模式下的视图组织;
  • View 提供特定的信息展示和操作能力;
  • Editor 提供对象或内容的编辑能力;
  • Command 定义统一的操作入口;
  • Extension 允许业务功能向工作台注册和扩展;
  • 用户可以通过调整视图来形成自己的独特的空间,从而满足自己特定的工作习惯;
  • 驱使软件设计和开发工程师从习惯的处理数据转变为处理对象,从而划分出明确的业务领域。

这些概念共同构成了应用的组织模型,用户面对的不再是彼此孤立的页面,而是一个可以持续工作的环境。

这与复杂工程软件的实际使用方式更加接近。

四、现代 Web 是否也需要Workbench?

现代 Web 技术已经具备构建复杂工作台的基础。

React、Vue、Lit 等技术可以承担 UI 组件和业务视图的实现;浏览器提供了成熟的运行环境;各种 Docking、Layout 和State Management 技术也可以支持复杂交互。但这些技术通常解决的是局部问题。要构建一个完整的企业级 Workbench,还需要在它们之上建立统一的应用框架。

这个框架需要定义:

  1. 应用的组织结构;
  2. 视图和编辑器的生命周期;
  3. 工作模式和布局管理;
  4. 插件注册与扩展机制;
  5. 命令与交互体系;
  6. 应用上下文和运行时服务。

这意味着我们需要重新审视现代 Web 应用的前端架构。

五、从页面开发转向工作环境建设

复杂企业软件的前端,不应该仅仅被理解为一组页面和组件。它更像是一个专业工作环境。不同业务模块在这个环境中注册自己的功能,使用统一的交互机制,共享应用级服务,并按照统一的架构规则协同工作。

这种思路并不是要否定现代 Web 技术,也不是简单复刻传统桌面软件,只是希望解决的是一个更基础的问题:

如何在现代 Web 技术体系中,建立一套能够支撑复杂企业应用的 Workbench 架构?

回首页,搜索你想要的文档

在首页搜索框输入关键词,快速定位资料

文库首页搜索指引 立即搜索

相关学习资料