野性酷女
楼主
发布于 2023-4-23 11:30:50
阅读 4123
查看全部
通过简单的拖拉拽操作,而不用编写复杂的代码,实现少写代码或者不写代码,就能快速高效完成业务目的。
01 低代码平台演进
1. 低代码概念
低代码是无需编码(0 代码)或通过少量代码就可以快速生成应用程序的开发平台。
通过可视化停止应用程序开发的方法,具有不同经历水平的开发人员可以通过图形化的用户界面,使用拖拽组件和模型驱动的逻辑来创建网页和挪动应用程序。
2. 低代码衍生历程
- 20 世纪 80 年代,第四代编程语言呈现。
- 2000 年 VPL 可视化编程语言的降生,是低代码产品的前驱,都可以通过一些可视化的界面来停止操作。
- 2014 年 业界咨询机构 Forrester 低代码/零代码概念。
- 2016 年 国内低代码平台相继发布。
- 2018 年 业界咨询机构 Gartner 提出 aPaaS 和 iPaas 的概念。
- 2021 年 中国市场低代码生态体系逐步建立。
3. 为什么要用低代码 ?
1)降本增效,便利开发
低代码开发可以为企业降低本钱,提升效率。在过去,低代码平台呈现之前,传统的原生代码开发平台需要停止代码开发,开发完成之后需要停止测试以及 bug 修复的一系列繁琐工作。
此外,传统的原生代码开发平台涉及到一些上下游合作方是紧耦合的串行开发模型,依赖方不提供接口,上游效劳也没有办法停止该接口的开发工作。这增加了开发过程中大量的沟通本钱和时间本钱。
低代码开发平台呈现后,研发人员可以通过前端图形化的拖拉拽实现需求,实现了研发效率的进步,使用低代码平台降低了研发人员的工作量和对编码人员开发技能的要求。低代码平台套用封装代码,根本消除测试修复 bug 的环节。同时,低代码开发平台是松耦合的并发开发模型,大大降低开发中对合作方的依赖性,从而降低沟通和时间本钱。
2)突破业务瓶颈,加强跨职能沟通
传统开发形式下:业务、产品、设计、开发、测试与运维人员各司其职,且各有一套领域内的工具和语言,耐久以来很容易形成一个个 “竖井” ,让跨职能的沟通变得困难而低效。
有了低代码后,我们可以基于低代码快速地停止开发,这一情况将得到改善。由于低代码上手容易,无需经过太多专业的训练,业务人员也可以快速上手,通过“拖拉拽”,基于模板或者可视化界面快速生成应用,从而突破业务壁垒。
3)进步产品的灵敏性
企业可以利用低代码平台发可以轻松地更改应用和业务流程,而无需花费大量时间编写代码。应用和系统的灵敏性、可操作性和可更改性大大进步。
4)加快数字化转型
在经济新常态下,为了进步经营效率和经营表现,数字化转型是大多数传统企业的目的,而低代码技术可以协助企业更快更好地完成数字化转型。
相比于纯代码开发,使用低代码开发企业应用能将项目的交付周期大幅缩短,从而更敏捷地完成项目交付,大幅提升企业数字化的速度。敏捷交付的背后是更屡次数的迭代,以及软件系统与企业贴合度的大幅提升,而这点是企业数字化转型成败的关键。
4.全代码&低代码&无代码对比
此处用一个象限图来说明业界低代码的演进方向,首先从看到图中的箭头,左下到右上,我们从传统的编程形式是逐步向无码化来演进的。
左下的代码编程,就是我们传统的编程阶段。前提是需要有一些比较强的编程才干。从早期的低级语言、到高级语言、进而到类库的提供、以及组件的使用。
右上的无码操作,指的是无代码、通用 SaaS 类的产品是可以让我们停止简单快捷地停止操作生成应用,但他们的灵敏性是不够的,假设要支持灵敏性和扩展性往往需要我们改变他们。
有没有一种更好的方式,可以支持这种情况?我认为最理想的情况是,在开发者不懂前端语言(JavaScript 等)或者不懂后端语言(Php、Java 等)的情况下,仍然能开发一个足够灵敏、足够通用的应用。我认为,低代码平台就是最接近这一个领域的手腕,因其可以同时兼顾灵敏性和业务逻辑,从而到达最适宜开发小白的需求的理想状态。
5.低代码市场分析
低代码行业最近几年不时被知名咨询机构 Gartner 所关注。目前,国内外都有很多企业在参与低代码平台搭建,足以说明这个行业的市场认可水平。
从咨询机构 Gartner 的市场分析来看,2023 年全球超越 50% 的大中型企业将把低代码应用平台作为主要的占领应用平台之一。估计到 2024 年,低代码应用程序开发将占总应用开发的 65%以上。
6.低码平台核心才干
低代码的平台具备的核心才干要素,我认为有四点:
图片
下面针对以上四点逐一分析:
(1) 可视化开发
业务人员基于可视化的页面或工具可以停止简单拖拉拽、可以形成一个页面信息。
他们也可以基于可视化界面来配置定义数据源和数据模型、简单定义一个流程,可以执行工作流。
总而言之,就是前端拖拉拽可以形成前端的交互语言,进而生成后端可以执行的计算机语言。
(2) 数据模型驱动
低代码平台,可以可以通过页面上的操作停止定义一个模型定义,可以灵敏的定义模型中的字段、也可以停止相关数据表的关联操作,以及设置数据模型的规则和索引。
a. 模型定义
停止数据库模型的设计、添加字段,设置字段的类型以及索引
b. 模型关联
建立数据库表与表之间的关系,详细表现为 1 对 n,n 对 n,n 对 1、1 对 1 等关联关系
c. 数据操作
基于数据库表对外提供一个 CRUD 的操作,让应用可以操作该数据模型
(3) 扩展性
是指低代码平台是否可以提供一些机制来停止扩展。
详细的扩展方式有以下三点:
a. 扩展语言
低代码平台是否可以我熟悉的语言来扩展,假设我是前端开发者,能否提供前端熟悉的语言来扩展,假设我是后端开发者,能否基于写一些后端代码(Java 、Go 等)来扩展。
b. 逻辑扩展
低代码平台能否通过定义一些流程图也停止业务逻辑的扩展,来执行业务 if、else 的流程来做业务上的一些调用。
c. API 集成
低代码平台是否可以通过低码平台搭建的应用与第三方公司已有的系统或者效劳做集成,能否在低码中通过 API 做集成过来,供我的应用来调用集成。
(4) 工程化
低代码平台是否可以停止本地开发调试、版本控制、自动构建发布上线、免运费以及监控的一些才干。简单来说是否在该平台上一站式配套的才干。
a. 扩展语言
低代码平台要可以停止本地的开发调试。
b. 版本管理
低代码平台可以停止版本回退操作,以及有才干可以预留体验,回退体验的时候不会影响到发布态的产物。
c. 自动化
低代码平台可以自动构建发布上线、免运费以及配套监控的一站式才干。
02 微搭低代码架构和开发简介
1. 微搭低代码介绍
微搭低代码平台是高效、高性能的拖拽式低代码开发平台,向上连接前端的行业业务,向下连接云计算的海量才干,助力企业垂直上云。微搭以云开发作为底层支撑,云原生才干将应用搭建的全链路打通,提供高度开放的开发环境。
微搭低代码是低代码应用程序平台(LCAPS)+ 多维体验开发平台(MXDP)的结合体。
我们有以下才干:
1)多端支持
一套代码,可以同时支持多端、小程序、web、pc 都可用。
2)生态集成
我们内部集成了腾讯文档,腾讯会议、微信支付、企微等才干,可以一站式用用户提供才干。
3)高阶组件
内部提供了模型组件、企业工作台等高阶组件。
- 开箱即用提供了开箱即用的才干,可以通过我们的应用市场、模板中心可以快速的停止业务开发和发布。
- 云端一体底层是 serverless 云原生技术,业务开发完成之后,业务上的是免运维免部署。
- 统一管理提供了框架开发的规范,便于统一的管理。
- 高扩展性支持高扩展性,高扩展性可以自定义组件、第三方数据源完成自定义逻辑的扩展。
- 混合开发业务形式上支持 可视化开发、低代码开发的才干。
2. 微搭低代码产品架构
微搭低代码提供了应用开发的一站式低代码开发效劳,从底层才干迭代至行业级方案,云原生全链路支撑为您的应用保驾护航,让您可以完全专注于业务场景,小白也可以极速搭建出成熟、专业的应用。
3. 微搭低代码后端理论
我们看下微搭低代码的后端理论,那么我们考虑下后端低代码需要处置什么问题?我认为应该有四点,以及详细在微搭低代码平台是如何理论的:
1、业务数据如何存?如何实现自定义数据存储?
微搭低代码笼统出了数据模型。
2、如何实现业务流程流转?
微搭低代码基于工作流来停止业务流程流转。
3、业务数据和流程流转,那些人可以访问和控制?
微搭低代码建立了用户权限平台,来停止人员角色的控制。
4、如何停止效劳端逻辑的自定义扩展?
微搭低代码通过云函数来实现后端效劳的自定义扩展才干。
所以我们微搭低代码后端开发理论分为以下四种:
数据模型、工作流、角色权限、效劳端扩展。
我们逐一看下详细每个是如何设计的:
1、数据模型
数据模型基于业界规范的才干 JSONSchema 来停止扩展,数据模型分为内部数据源和外部数据源两种。
数据模型 - 内部数据源:
为我们提供数据模型定义,索引、以及各种数据模型的关系。
我们可以灵敏的来自定义数据字段,以及字段的索引功能。
也能过提供规范通用的才干,比如新增、删除、查询、更新等。
数据模型 - 外部数据源
连接器:
连接器可以打通外部应用数据或调用外部应用开放的效劳,开发者只需要对连接器完成受权或少量填写一些配置信息,即可使用对应产品的效劳接口。
我们内部集成一些企业级的应用,比如腾讯会议、腾讯文档、腾讯地图、微信支付等应用,方便快速提供一些企业级的才干给到开发者。
自定义连接器
自定义连接器支持调用第三方效劳接口或使用代码来实现业务逻辑。开发者可以在应用、工作流、自定义数据模型中使用。
分为 http 和云函数形式:
http:开放式 API,用户来链接外部的效劳,与外部 API 来做集成。
云函数形式:完全自定义,当用户以上所有的场景均不能满足的时候,可以通过云函数的来手动写一些代码来自定义一些逻辑,实现业务上的逻辑扩展。
2、工作流
工作流基于业界规范 bpmn 协议来扩展,数据展示和存储基于规范 JSON 来处置可读性更高。
微搭工作流的触发时间:
即时时机、也支持定时触发。可以通过配置一些节点,来执行业务逻辑的操作。
我们支持审批节点、自动化节点、数据源变卦通知、加签、转签等操作。通知节点与消息模板集成,可以发送系统站内信、与企微打通,可以发送企微系统消息。我们也支持本地调试,支持版本回溯才干。
3、角色权限
角色权限整体遵循 RBAC 模型来停止设计的,业务上可灵敏的支持扩展。详细用户可以访问哪些页面、数据源、以及流程权限等,我们也支持设置一些权限集,以便于灵敏地停止业务上权限的扩展。
从下边的图可以看到,我们可以控制普通应用的访问权限,页面权限以及页面下的按钮权限,也可以控制模型应用的权限;
可以控制数据源的行记录,数据源方法权限,数据源列权限,也可以对流程的访问权限做控制,还可以控制企业工作的访问和登录权限等操作。
4、效劳端扩展
效劳端的扩展基于云函数的才干,通过页面可视化编写代码来停止效劳端逻辑的扩展。可以做一些数据表的聚合,以及 CRUD 等操作方法。
云函数(Serverless Cloud Function,SCF)是腾讯云为企业和开发者们提供的无效劳器执行环境,协助您在无需购置和管理效劳器的情况下运行代码。您只需使用平台支持的语言编写核心代码并设置代码运行的条件,即可在腾讯云根底设备上弹性、安全地运行代码。
4. 微搭应用开发流程
此处将介绍基于微搭拖拉拽来快速构建一个应用的生命周期,整个低码应用开发和运行的生命周期,以及低码在设计态和运行态做了什么。
在微搭的应用开发流程中,微搭应用的生命周期分为设计态和开发态。
1)设计态
我们通过前端可视化的界面和组件,停止表单定义模型及定义模型关联关系。我们还可以针对表单配置用户和权限、也可以通过页面来操作配置一些工作流。我们可以拖拉拽配置一些页面,生成页面的 DSL。配置数据模型,生成数据的 JSONSchema DSL。配置流程生成流程的 BPMN 扩展,基于角色绑定用户权限,生成 RBAC 模型的 DSL。
在发布的时候,我们前端 H5 会生成 Reat 代码、小程序会生成小程序代码。发布之后,前端代码会发布在静态托管中,效劳端自定义扩展效劳逻辑是部署在云函数中。
2)运行态
客户会从 web 或者小程序发起调用,会经过访问经过我们的静态托管以及云函数和云数据库,进而将恳求分为到微搭侧后端中心化效劳,和企业第三方效劳。
5. 微搭高可用效劳才干
一个高可用的效劳需要从部署、变卦、预案、监控、安全等多方面考虑。到达 99.99%效劳高可用的目的,需要各角色的工程师共同努力。本文简单介绍下微搭在消除单点和弹性伸缩这块的理论。
消除单点
单点有两种场景:一种是某个模块仅部署了一个实例;第二种是某个模块虽然部署了多个实例,但任意实例故障都会导致效劳整体或者大面积不可用。如何识别系统单点?通过排查模块的实例数量和停止破坏性测试来发现系统中是否存在单点。对于已知的单点,则应该尽量做好预案,减少故障时长。
针对这种情况,微搭一是在每个集群部署了多个 POD 来消除集群内单点,另外一块针对集群 1 整体挂掉的情况下,也可快速切换集群来消除单点,保证效劳的稳定性。
弹性伸缩
弹性伸缩是根据业务需求和战略,针对无状态的效劳,通过定时、阈值设定等方式,自动调整集群规模,举例来说,对于大促,机房故障等灾难场景,可以很好的提升可用性。伸缩顾名思义,有伸也有缩,缩的特性,可能让集群维持在一个合理的规模上,从而防止形成不用要的本钱浪费。因而,弹性伸缩也是常态下系统坚持可用性的重要手腕。
微搭是基于 serverless 自动弹性伸缩云原生的才干,来保证我们后端效劳整体的高可用。当流量高的时候自动来扩容机器,当流量低的来实时缩容效劳器。
03 微低代码的将来趋势
从 2020 年开端,低代码成为了业界热点,无论是资本市场还是企业用户都纷纷追捧。那么在将来,低代码平台会如何开展呢?在我个人理解中,低代码平台开发将会沿两个纬度演进:
1、通用性,也就是语言属性维度;随着低代码开发平台的不时成熟和开展,低代码开发平台逐步具备通用场景的开发才干,例如可以开发网站、游戏、3D 场景、电商、企业应用、个人应用;支持的系统也会更加全面,例如支持 WebApp、iOS/Android、Windows/Mac/Linux、小程序等各种应用。
2、便利性,也就是指代码量不时降低的过程,最终将实现 0 代码编程。
但是通用性和便利性要想同时实现,是非常困难的,这也是低代码开发平台急需处置的问题和下一个挑战。最终使“去掉程序语法,保留程序逻辑”成为可能。
最后也回答下大家比较关心的一个问题:低代码会取代程序员吗?
我认为低代码处置的是可笼统的,通用的且可复用的产品才干,程序员作为高端技术人才,市场缺口宏大,低代码工具是将程序员从现有的反复的枯燥的接口开发中解放出来。程序员应该更关注业务发明方面的技术研究和开发。低代码是工具,低代码与程序员之间的关系就像翻译软件与译者,数据统计系统与数据分析师,工具的目的是减少反复的劳作而将人力投入更有意义、有价值的研究之中。
本文作者:
谢艳祥
腾讯云微搭高级工程师,专注于后端研发效能提升,工程化体系建立。
在性能优化、研发效能、架构高可用设计等方向有一定的落地理论经历。
腾讯云微搭低代码(https://cloud.tencent.com/product/weda)是高效、高性能的企业级低代码平台。协助开发者快速搭建支持多种业务场景的小程序、H5、PC WEB 应用,通过简单的拖拉拽操作,而不用编写复杂的代码,实现少写代码或者不写代码,就能快速高效完成业务目的。 |
|