首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

每天上线一个新系统,这款腾讯自用低代码有什么不同

在腾讯,有一款广泛使用的低代码平台,名叫无极,也是腾讯端服务联盟成员。它支撑了大量业务的运营系统、管理系统以及产品门户,平均每天上线1.2个新系统,用户覆盖腾讯1/3的员工。众所周知,腾讯的业务跨度很大,涵盖从社交到金融,从游戏到医疗,从媒体到云服务等领域,项目之间差异巨大。那么,是怎样的低代码平台能够满足如此多样化的需求呢?下面分享下腾讯在低代码领域的独特技术路线。

(用低代码搭建的各种应用)

从数据结构设计开始

作为全栈低代码平台,无极的独特之处在于"去模板化"设计。腾讯的项目间差异较大,没有任意两个项目是相似的。所以跟业界其他产品不同,无极不提供任何应用模版。

开发者通常会从设计系统数据结构开始。

数据结构可以说是系统的灵魂,即使在智能化程度很高的今天,平台依然坚持由开发者自行设计数据库表。但通过无极平台,这项工作变得非常简单——开发者可以在线设计数据库,并做可视化管理。

(可视化创建数据库)

当数据库设计完成后,系统开发已经完成了一半。

数据推导UI,自动生成界面

绝大多数管理系统的页面都由列表和表单构成,主要功能是增删改查。无极内置了UI智能推导模块,当开发者设计好数据库后,只需要简单拖拽,就能生成功能完整的页面。

如生成一个可查询可编辑的列表:

或者是一个可以创建/修改的表单:

一拖拽,就完成

系统不仅自动生成UI界面,还会完成前后端服务的绑定。开发者无需关心页面如何读取和写入数据,这正是系统提倡"先做后台,再做前端"的原因。当前端了解后台协议后,一切变得水到渠成。开发者不必逐个拖拽组件和按钮,也不必为数据绑定而烦恼。腾讯的低代码不是从空白画布开始,而是从一个功能完整的页面开始编辑。

说到编辑能力,就要提起无极的核心竞争力:UICore引擎。

高度灵活的编辑器

一个复杂的系统当然不是拖拽一下就出来的。系统生成的只是默认形态,用户还需要做调整。为此,腾讯自研了UICore编辑器引擎,可以让用户实现UI的高度定制。以列表为例,开发者可以深入到每个字段,修改列的展现方式:

每个单元格都是一个独立的画布,开发者可以往里添加组件,甚至进行跨列调整。事实上在无极中,画布可以嵌套组件,组件也能嵌套画布,形成任意组合。

嵌套和组合——所有UI组件都可以归纳成这两种关系。

页面调整能实时预览效果,体验极为流畅。

当然,这些能力都是被“逼”出来的。腾讯太注重用户体验,没有一个产品经理会对交互设计进行妥协。所以无极发展出了强悍的可视化编辑器。不管多复杂的界面,都可以精准还原。这大概就是流淌着腾讯基因的产品吧。

渐进式开发

好了,拖拖拽拽虽然很容易把UI做好,但是,如何实现定制化的逻辑程序呢。这是所有低代码的难题,俗称需求的“最后一公里”。

用户想要的是这样:

一般的低代码只能做到这样:

为此,无极提出了渐进式开发的概念。从简单到复杂,从少量代码到大量代码,分别对应不同的解决方案,层层递进:

1、表达式层

使用插值表达式实现字符串拼接:

也可以做简单的数据处理或逻辑判断:

所有需要展示数据的地方,都支持表达式。比如自定义页面标题,只要一行表达式,就可以引用页面数据进行拼接展示:

2、脚本层

用纯JavaScript代码实现复杂业务逻辑:

不管是前端逻辑,还是后台server,一切逻辑皆可用原生代码实现。对于简单的数据处理、逻辑转换基本够用。如果再复杂一点,可以使用页面的LessCode编辑器,自定义页面生命周期事件和方法:

这是一个功能更完善的代码编辑器。你可能会担心,在一个不熟悉的平台上写代码是个很困难的事情,有哪些上下文,有什么API,都要查文档。不用担心,都2025年了,写代码的事情可以完全交给AI。无极所有代码场景都内置了Copilot,只要写段注释,敲下TAB键,代码就自动写好了:

不用查文档,直接说需求,彻底解放了开发者的生产力。

3、本地开发层

通过CLI工具进行本地开发。有时候项目复杂起来,代码量会不断膨胀。在前端编辑器里维护大量代码,体验不太好,而且不利于工程化。因此,无极的渐进式开发还有第三层——本地开发。

平台提供了一套完整的开发框架和CLI工具。只要一个命令就能创建本地项目:

wuji create my_project #创建一个叫my_project的本地项目

然后,就可以使用本地IDE进行开发。项目框架包含了开发原生组件、原生页面、云函数、通用代码等:

├── README.md├── package.json├── tsconfig.json├── wuji.config.js └── src ├── components  #组件开发目录├── funcs       #云函数目录├── globals     #页面公共逻辑目录└── pages       #页面开发目录

如果需要开发新组件,一个命令就可以自动添加文件:

wuji new -c my_component # 创建一个my_component组件

从本地开发这个层面来看,无极不仅是一个低代码平台,同时也是一个开发框架。它可以让开发者毫无约束地实现任何复杂的定制化需求。这是腾讯低代码平台与其他产品最大的区别。也许有人不明白,明明已经是低代码了,为什么还要保留这么多原生代码开发能力呢?

这是因为低代码不一定比原生代码更高效。

本质上,配置和写代码只是表达功能的不同方式,有时配置复杂度会高到不如直接写代码更快。例如,下面是用国内某个低代码平台实现的逻辑流程:

(太长,不看)

实际上这么复杂的流程,用一句话来描述就是“根据用户的休假起始时间和结束时间,计算请假天数,并排除周末。”如果把这个问题丢给AI,生成的代码就几行:

let days = 0;if (startTime && endTime){ while (startTime <= endTime) { if (startTime.day() !== 0 && startTime.day() !== 6) // 排除周六周日 days += 1; startTime = startTime.add(1, 'day'); }}

会写代码的人显然更愿意选择这种方式,因为更高效。所以,在低代码平台,可视化配置和逻辑代码是一个互补的机制。用可视化界面实现大的逻辑框架,再用少量代码填充细节。

除此之外,实现本地开发还有一个很重要的原因,就是平台需要具备的基本职责:

集成性和开放性

很多低代码产品并不会把这两个特性看得很重。但这恰恰是平台实现平滑发展所需要的。

集成性——低代码平台需要与现有的原生项目无缝衔接

一个成熟的业务系统可能已经沉淀了大量的前端组件和后台服务。将所有代码推翻重做不现实,团队也需要逐步验证新平台能否适用。有了本地开发能力,业务团队可以用最小成本接入低代码,将已有的UI组件封装成无极组件,再用无极画布进行拖拽和组装。在后台,可以直接注册微服务,以http的形式让系统调用。如此一来,接入门槛大大降低,开发者会非常愿意去尝试低代码的有效性。

开放性——低代码平台必须是可扩展的

没有一个封闭系统能解决100%的问题。如果没有好的扩展性,等于把项目装在一个封闭的盒子里。只要用户遇到一个盒子内无法满足的需求,就不得不放弃低代码。所以平台需要有足够强的扩展性。长期来看,一个开放的平台会吸纳更多优秀资源。例如,腾讯内有很多优秀的前端组件,可以通过无极的二次开发能力快速上架平台,用户只需简单拖拽和配置即可使用。在后台。开发者会把业务网关信息导入平台,开发者就可以直接调用网管里的众多服务。久而久之,无极就形成完善的开发生态,低代码就成了低代码平台。

统一平台的价值

对于一个严肃的系统来说,总有大量与业务无关的事项需要开发者操心。例如账号登录、权限管理、审计日志、环境配置、网站统计等,这些都花费人力开发。通过平台,这些业务无关功能可实现开箱即用。

这是无极的另一大价值所在。业务团队无需再重复开发这些相似需求,比如权限系统要实现权限灵活配置、精准管理、申请审批以及前后端打通,这需要一个小团队独立开发。而有了无极,业务开发者只要专注于业务逻辑即可。

AI赋能开发

腾讯一直在探索AI应用的落地场景。而在低代码领域,无极实践出了一套很实用的功能。除了支持AI自动写代码外,还研发了AI智能助手,帮用户处理所有棘手的任务。例如:

• 自动配置流程图

• 自动生成统计图表

• 自动翻译表单字段

这还不止,你还可以使唤AI干很多天马星空的事情。例如:

• 做个小游戏玩玩:

• 做个PPT配图(这个功能我最喜欢):

(指令:资源-效率-质量是个不可能三角,画个三角形)

• 出几个设计稿看看:

(指令:设计3种不同的电影卡片)

跟普通的AI聊天不同的是,无极可以直接预览、运行,并二次修改AI生成的代码。最后一键发布,分享给其他人。可以说,AI助手让开发者如虎添翼,强者更强。

加速拥抱低代码

过去1年,腾讯各业务都在加速落地低代码。原因无它,因为传统开发效率太低了。一个互联网产品背后,可能有上百个运营系统在支撑。而传统开发效率低下,并且烟囱林立,难以维护。

(平台活跃页面数,这也是AI画的)

除了开发效率,无极还赋能开发者全栈开发的能力。不同类型的开发者都可以独立完成前后端功能。在腾讯内,不管是写什么开发语言的,都在用低代码搭建系统:

不仅在腾讯,许多外部客户也在使用腾讯低代码。很多时候,企业用户不知如何进行技术选型,要花大量时间调研。低代码产品较为复杂,它不像数据库那样标准化。国内商业化低代码平台很多,但定位差异很大。有面向业务人员的无代码产品,有面向非专业人士的“少儿编程”类产品,也有像无极这种面向专业开发者的全栈型产品。只要清楚不同产品的定位,就容易做出选择。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OsnczUDHkmXsnClQ_49-inqA0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券