写给技术管理者的低代码手册系列文章(8)——第二部分:低代码的概念、价值与发展现状(第四章)

系列文章

写给技术管理者的低代码手册系列文章(1)------从软件工程视角理解低代码的价值、边界与演进路径

写给技术管理者的低代码手册系列文章(2)------第一部分:低代码诞生的背景【第一章】

写给技术管理者的低代码手册系列文章(3)------第一部分:低代码诞生的背景【第二章】

写给技术管理者的低代码手册系列文章(4)------第一部分:低代码诞生的背景【第三章】

写给技术管理者的低代码手册系列文章(5)------第二部分:低代码的概念、价值与发展现状(第一章)

写给技术管理者的低代码手册系列文章(6)------第二部分:低代码的概念、价值与发展现状(第二章)

写给技术管理者的低代码手册系列文章(7)------第二部分:低代码的概念、价值与发展现状(第三章)

第四章 低代码的通用能力

在前文中,我们已经从商业定位、经济模型与价值取向的角度,对低代码进行了系统性拆解。接下来将讨论进一步落到工程层面,回答一个更具操作性的问题:无论面向业务开发者还是专业开发者,一款合格的低代码平台,在技术与工程上至少需要具备哪些通用能力?

这里所说的通用能力,并不等同于功能清单,也不是对具体产品形态的描述,而是指那些与平台定位无关、与具体业务无关,但直接决定其工程价值与可持续性的能力基础。这些能力共同构成了低代码平台作为开发工具的下限。

需要强调的是,本章并不试图给出一份评测表或选型清单,而是从软件工程与长期演进的角度,解释这些能力为什么必须存在,以及缺失会导致什么问题,并在必要时给出直观示例。只有理解这些能力背后的逻辑,企业才能根据自身场景,判断某一平台是否真正具备支撑其目标的潜力。

4.1 通用能力的基本划分视角

尽管低代码平台在市场上的呈现形式差异极大,但从工程结构上看,其通用能力大致可以归纳为三大层次:

  1. 可视化开发阶段的建模与表达能力:低代码如何描述业务对象、流程、规则和界面
  2. 运维阶段的运行与治理能力:平台如何支撑系统运行、控制复杂度并保障质量
  3. 编码扩展与演进能力:如何通过开放性应对变化、集成外部系统并持续演进

这三类能力并非彼此独立,而是层层叠加、相互制约。建模能力决定了系统能否被清晰表达,治理能力决定了系统能否长期可控,而扩展能力决定了系统能否在变化中继续存在。

对于面向业务开发者的低代码,这些能力往往以高度封装、强约束的方式呈现;而对于面向专业开发者的低代码,则更多体现为可配置、可组合、可扩展的工程机制。但无论形式如何变化,其底层诉求是一致的。

4.2 建模与表达能力:让复杂业务具备可描述性

4.2.1 统一的数据模型与元数据体系

任何企业系统,最终都围绕数据展开。低代码平台如何以一致、可理解、可演进的方式描述业务数据?一款成熟的低代码平台,在数据模型层面至少需要具备以下能力:

  • 对业务实体、字段、关系进行统一建模
  • 数据定义具备明确的生命周期与变更规则
  • 数据模型不仅服务于存储,还能被页面、流程、权限、接口等能力复用

例如,某制造企业使用具备统一数据模型的低代码平台构建生产管理系统。工单状态被定义为平台级的枚举实体,包含状态值、判定规则等。当需要添加新状态时,开发者只需要:

  • 在数据模型中添加新的枚举值和判定规则
  • 所有引用该模型的页面、逻辑、流程都可以自动感知新状态
  • 开发者可以查询哪些流程节点、逻辑用到了新增的状态

这种方式确保了数据口径的一致性,将变更成本从搜索所有配置并逐个修改降低为在统一模型中定义一次。

面向业务开发者的低代码,通常通过"表单 + 字段"的方式完成数据建模,强调直观性和易理解;而面向专业开发者的低代码,则往往引入更明确的领域模型、实体关系和元数据(如上文中判断客户状态的规则)定义机制,以支撑跨模块、跨系统的复用。

4.2.2 页面与交互模型的结构化表达

页面是用户感知系统的主要入口,也是复杂性最容易失控的地方。低代码平台需要在灵活性与结构性之间做出清晰取舍。通用能力层面的要求并不是"页面能否拖拽",而是:

  • 页面是否基于可复用的组件模型
  • 页面与数据、逻辑之间是否存在清晰边界
  • 页面结构是否能够被版本管理和审计

例如,某商务服务业公司使用具备结构化页面模型的低代码平台构建理赔系统。平台明确区分:

  • 页面结构:由可复用的UI组件组成,只负责数据展示和用户交互
  • 业务逻辑:封装为独立的服务端逻辑服务,由页面和元素的事件调用,而非直接嵌入
  • 数据绑定:通过声明式配置将页面元素的值、显式状态与从服务端逻辑服务获取到的数据模型关联

当需要调整审批规则时,团队可以直接定位到"审批规则服务",修改判断逻辑后,所有引用该服务的页面自动生效。页面层不需要任何改动,也不会因为"某个页面忘记更新"而出现不一致。一个常见的反面例子是将页面逻辑大量嵌入在页面、按钮等元素的事件中,字段校验、权限判断、流程跳转混杂在一起。初期开发效率看似很高,但一旦需要修改规则或复用页面结构,开发者往往只能"复制一份再改",很容易造成疏漏和不一致。

在面向业务开发者的低代码中,这种复杂性通常被平台通过强约束隐藏;而在面向专业开发者的低代码中,平台更倾向于通过组件化、模板化和MVVM(模型-视图模型-视图)等分层模型,让复杂性被显性表达和治理。

4.2.3 业务规则与流程的显性建模

除了数据和界面,企业系统中最核心、也最容易变化的部分,是业务规则与流程。低代码平台如果无法对这部分内容进行显性建模,就很难兑现降低变化成本的承诺。通用能力层面的关键在于:

  • 规则与流程是否可以脱离页面存在
  • 是否支持版本化、条件化和组合式表达
  • 是否能够在不改动大量既有配置的情况下引入新规则

例如,某金融机构使用具备规则引擎的低代码平台构建风控系统。所有业务规则被定义为独立的服务端逻辑:

  • 规则名称:信用评分-收入验证
  • 规则参数:income、age、creditScore
  • 规则输出结果:creditScore
  • 规则条件:income < 5000 AND age < 25
  • 规则动作:creditScore -= 20

当需要临时调整某个规则时(例如疫情期间放宽收入要求),只需要修改规则的条件部分即可。开发团队可以通过审查该服务端逻辑的变更历史,追溯任何时间点的规则内容,满足审计要求。

业务规则建模是面向专业开发者和面向业务开发者的低代码平台最显著的差异化特征。前者倾向于提供清晰的前后端逻辑编排机制,确保安全边界和事务性的同时,帮助开发者建立起团队内部开发规范;后者则倾向于尽可能不提供类似功能,以降低非IT技术人员的学习成本。

4.3 运行与治理能力:让系统在长期运行中保持可控

4.3.1 运行时架构与隔离机制

低代码平台并不是设计工具(Designer),而是以运行时(Runtime)的形式承载开发者构建的业务软件。其运行时架构直接决定了系统的稳定性与可扩展性。在运行时架构层面,至少应包括应用级、模块级的运行隔离,对资源使用的基本控制与限制,对异常和错误的统一处理机制等能力。

例如,某制造企业使用具备运行隔离能力的低代码平台,每个业务系统作为独立的进程运行:

  • 每个应用有独立的资源配额(CPU、内存、数据库连接数)
  • 应用之间通过标准的WebAPI通信,而非共享底层资源
  • 某个应用的异常被限制在该应用边界的内,不会传播到其他应用

当生产管理系统因为一个错误导致内存泄漏时,低代码平台自动检测到该应用的内存使用超限,触发应用重启,恢复正常运行。财务和人事等系统的运行基本不受影响。运行时隔离不仅提升了稳定性,也让故障的影响范围变得可控和可预测。

面向业务开发者的低代码平台通常不会显式提供该能力,而是倾向于将其内置于平台中。面向专业开发者的低代码平台在此基础上,通过业务规则和逻辑的编排机制,将异常处理机制开放给开发者,以便于针对业务特点设计不同的处理策略。

4.3.2 权限、安全与审计能力

随着系统规模扩大,权限问题往往从功能可用性问题演变为组织治理问题。低代码平台需要提供的,不只是简单的角色配置,而是一套可持续的安全与审计机制:

  • 基于角色、数据范围、操作类型的多维权限控制
  • 对关键操作和配置变更的审计与追溯
  • 与企业既有身份体系的对接能力

例如,某金融机构使用具备多维权限能力和高度定制化的服务端逻辑的低代码平台构建客户管理系统,支持了以下特性:

  • 功能权限:通过权限配置,指定谁可以访问哪些菜单和操作
  • 数据权限:通过权限配置,指定谁可以看到哪些数据范围(按部门、区域、客户等级过滤)
  • 字段权限:通过自定义的服务端逻辑,敏感字段(如身份证号、银行卡号)做到脱敏展示
  • 操作审计:通过自定义的服务端逻辑,所有敏感数据的访问都被记录到数据库,包括访问人、访问时间、访问内容

当监管部门要求提供"过去一年内所有访问VIP客户信息的记录"时,系统可以直接生成完整的审计报告,包括每次访问的操作人、时间、访问的具体字段,满足合规要求。

在面向业务开发者的低代码中,权限模型通常被简化为类似OA软件那种基于组织结构的可视化配置;而在面向专业开发者的低代码中,权限往往被视为系统架构的一部分,与数据模型、服务端逻辑的边界紧密结合,允许开发者自行定义权限控制与用户授权管理功能,以适配不同的管理和操作习惯要求。

4.3.3 运维、监控与问题定位能力

当低代码平台承载的是生产系统时,"出了问题怎么办"就不再是次要问题。通用能力层面,平台至少应支持以下项目,提升系统的整体可观测性:

  • 运行状态与性能指标的可观测性
  • 错误日志与调用链路的定位能力
  • 对问题影响范围的快速判断

例如,某物流企业使用具备完善监控能力的低代码平台构建运输管理系统。平台提供:

  • 结构化日志:每条日志包含业务上下文(订单号、车辆ID、操作人)
  • 性能指标:实时监控关键服务端逻辑的响应时间、吞吐量、错误率
  • 告警机制:当某个逻辑的错误率或响应时间超过阈值时,自动发送告警

当某次系统异常发生时,监控系统自动发现订单创建接口的错误率从0%跳升到30%、"库存查询服务"响应超时;开发者通过日志过滤,快速确定影响范围:过去10分钟内有23个订单受影响;问题定位和影响评估总共耗时不到5分钟。可观测性不仅提升了问题定位效率,更重要的是让团队能够主动发现问题(通过监控告警),而不是被动等待用户投诉。

如果平台只关注如何开发,而忽略如何运行,那么一旦系统进入高频使用阶段,IT团队将很难对其负责,低代码反而会成为新的风险源。这部分能力的开放性较强,低代码平台可以选择自行提供相关功能,或集成其他成熟的方案,如集成ELK方案实现日志记录与查询来实现。

4.4 扩展与演进能力:为变化预留工程空间

4.4.1 标准化的扩展机制

无论平台封装得多么完善,都无法预见所有业务场景。这种覆盖不足可能源于业务需求本身的多样性,更大概率源于新的数字化技术的引进,比如近期热火的生成式人工智能。因此,低代码平台必须为超出既有模型的需求提供扩展路径,让低代码构建的软件不会卡在最后一公里。基础的扩展路径并不是简单的开放编程接口,而是需要包含以下:

  • 扩展是否有明确的入口和规范
  • 扩展代码是否与平台升级解耦
  • 扩展能力是否具备可测试性和可治理性

例如,某制造企业在使用低代码平台构建客户管理系统时,遇到了类似的积分计算复杂场景。但由于平台提供了明确的服务端逻辑扩展点,扩展逻辑被封装为标准化的插件,有明确的版本号(如1.2.3),将插件在平台中注册,并声明依赖的平台版本(如"dependenceVersion": "11.0.4.0")。之后,当开发者尝试在其他版本的低代码平台上使用该插件时,插件声明的依赖约束触发兼容性警告,避免了未经测试的插件带来的质量风险。这种设计让对平台的扩展本身成为被充分设计过的平台能力,而不是绕过平台的补丁,避免了对平台本身工程价值的侵蚀。

比较反直觉的是,这部分能力与低代码开发者的关系较弱,而是与为低代码平台做扩展开发的编码开发人员紧密相关,所以面向专业开发者的低代码平台与面向业务开发者的低代码平台几乎没有差异。

4.4.2 与外部系统的集成能力

企业系统从来不是孤立存在的,而是企业IT生态中的一环。低代码平台需要具备与外部系统、服务和数据源进行集成的基础能力,包括:

  • 对标准接口协议的支持
  • 对异构数据源的访问能力
  • 对调用失败、超时等情况的处理机制

例如,某金融机构使用具备完善集成能力的低代码平台构建客户服务门户,需要对接征信系统、核心银行系统、反洗钱系统等多个外部系统。平台的集成能力包括:

  • 多协议支持:原生支持REST/SOAP/gRPC,可以直接调用不同协议的外部服务
  • 数据源适配:访问Oracle/MySQL/PostgreSQL等异构数据库,无需数据同步
  • 调用治理:提供超时控制、重试策略、熔断机制、幂等性保证等企业级能力
  • 可观测性:所有外部调用自动记录日志,生成调用链追踪,集成到统一监控平台

当征信接口偶尔出现超时时,平台的WebAPI调用熔断机制自动降级,使用缓存的历史征信数据,监控系统发送告警,但不影响用户操作。待征信接口恢复后,自动切回正常调用。这种方式不仅降低了集成成本,更重要的是让外部依赖变得可控和可观测。

这里的关键并不在于能集成多少种系统,而在于集成方式是否具备一致性和可维护性。与扩展机制类似,这部分能力在面向专业开发者的低代码平台与面向业务开发者的低代码平台间的差异也较小,因为集成的复杂度主要来自外部系统本身,而非平台的使用者。

4.4.3 平台自身的可演进性

最后,一个经常被忽视但极其重要的问题是平台本身能否演进?在通用能力层面,可持续演进意味着:

  • 平台升级是否会破坏既有应用
  • 平台能力演进是否有清晰的版本策略
  • 用户是否可以逐步迁移,而非一次性重构

例如,某商业服务企业使用具备良好演进能力的低代码平台构建了订单、配送、客服等多个系统。平台采用长期支持版本(LTS)策略:

  • 版本兼容承诺:平台升级时,明确区分兼容性升级(应用无需修改)和破坏性升级(需要适配)
  • 渐进式迁移:允许同一个平台上的不同应用运行在不同版本的运行时上,按业务优先级逐步升级
  • 自动化适配工具:对于必须的破坏性变更,平台提供自动化迁移工具,将90%以上的适配工作自动完成

当平台从10.x升级到11.x时,订单系统作为核心业务,希望引入11.0的生成式AI功能,优先升级适配新版本(按手册操作,耗时1周);配送和客服系统暂无新功能规划,继续运行在10.x版本上。这种方式让企业可以根据自己的节奏演进,而不是被平台升级绑架。更重要的是,升级成本是可预期的,不会出现"升级等于重写"的情况。如果平台自身无法平稳演进,那么其所承诺的"降低长期成本"将无法成立。

4.5 面向业务开发者与专业开发者低代码能力侧重点对比

低代码平台的通用能力,决定的并不是它"最多能做到什么",而是它"至少不应该失控到什么程度"。在企业实践中,很多问题并非源于平台功能不足,而是源于其在通用能力层面的缺失,使得系统在规模扩大和时间推移后迅速失去可控性。

理解这些通用能力的意义,并不是为了追求功能齐全,而是为了帮助企业在选型和落地时,判断某一平台是否真的具备支撑其目标场景的工程基础。只有在这一基础之上,低代码才能真正成为一种可持续的软件生产方式,而不仅仅是一次性的效率工具。

在具备上述通用能力的前提下,不同定位的低代码平台,会在实现方式和侧重点上形成明显差异。下表从工程视角,对两类低代码在通用能力上的典型差异进行总结:

维度 面向业务开发者的低代码 面向专业开发者的低代码
核心目标 快速产生成果 控制长期演进成本
数据建模 表单驱动,强调直观性 领域模型驱动,强调一致性
页面表达 强封装、低自由度 组件化、结构化
业务规则 内嵌于配置流程中 显性规则、逻辑与流程建模
扩展方式 有限扩展,优先配置 标准化扩展,版本可控
治理与运维 以平台代管为主 强调IT治理与可观测性
适用系统 短周期、边缘系统 长周期、核心与中枢系统

需要再次强调的是,这种差异并不意味着某一类平台更高级或更先进。它们只是针对不同的价值坐标,在通用能力的实现方式上做出了不同取舍。

相关推荐
树上有只程序猿5 小时前
继续堆无用代码,真的不如早点用Low code
前端·低代码
踩着两条虫1 天前
AI 智能体如何重构开发工作流
前端·人工智能·低代码
九幽归墟4 天前
一篇文章让你读懂Figma的原始数据结构
低代码·视觉设计
全栈老石6 天前
拆解低代码引擎核心:元数据驱动的"万能表"架构
数据库·低代码
canonical_entropy7 天前
AI Agent 的演进之路:从对话到自主代理操作系统
低代码·aigc·agent
Java小卷8 天前
流程设计器为啥选择diagram-js
前端·低代码·工作流引擎
一枚前端小姐姐10 天前
低代码平台表单设计系统技术分析(实战三)
前端·vue.js·低代码
一枚前端小姐姐10 天前
低代码平台表单设计系统技术分析(实战二)
低代码·架构·前端框架
一枚前端小姐姐10 天前
低代码平台表单设计系统架构分析(实战一)
前端·低代码·架构