当前位置: 首页 > news >正文

低代码技术研究路径解读|低代码的产生不是偶然,是数字技术发展的必然

 

上一期对中国信息通信研究院企业数字化发展共建共享平台《低代码发展白皮书(2022年)》#低代码发展趋势 进行了解读,在政策推动下,各行业企业积极落地数字化转型设计方案,数字化场景落地需求爆发式增长,低代码已成为效能提升的突破点。

本文将对白皮书内容-低代码技术研究路径进行解读。

 

中国信息通信研究院《低代码发展白皮书》

版权所有:中国信息通信研究院--企业数字化发展共建共享平台


随着编程语言的迭代、抽象、简化、复杂和整合,低代码技术不断精进,形成更加简单、清晰的图形化界面与高级语言结合的开发模式。在数字化转型方案实施过程中,低代码开发能够覆盖大量应用场景,减少重复性代码编写工作,提升开发效率。为进一步拓展能力边界,推动低代码技术的革新,亟需探索低代码技术与新IT技术的结合方式与应用。

理念创新驱动技术发展,低代码认知日臻统一

在汇编语言、第四代编程语言、VPL(Visual Programming Language,可视化编程语言)、RAD(Rapid Application Development,快速应用开发)模型等语言和理念的演进下,低代码的雏形逐步形成。2001年对象管理组织推出了模型驱动架构(MDA,Model-Driven Architecture)方法,支持正向工程,即代码可以通过画图或者设计模型生成。模型驱动开发(MDSD,Model-Driven Software Development)指采用建模语言替代编程语言、建模工具替代编程工具,先创建模型再自动生成代码,最后编译为应用系统的开发过程。技术革新和理念创新都是新技术诞生的坚实基础,低代码的产生不是偶然,是数字技术发展的必然。

 

图-低代码技术发展时间线 (图源/中国信通院  )

低代码有很长一段自由发展期,期间缺乏完整定义,大家习惯根据自己的理解为新技术“添砖加瓦”,导致没有统一认知,竞争赛道模糊。2014年,Forrester提出低代码的定义,“利用很少或几乎不需要写代码就可以快速开发应用,并可以快速配置和部署的一种技术和工具。”;2018年Gartner提出和推广aPaaS和iPaaS概念,持续的技术创新让低代码受到越来越多的人关注。

相关研究机构的定义引导大众形成了对低代码的基本认知,规范了发展赛道,并指出其技术特点高度契合数字化转型需求,迅速吸引了大量资本投入,极大地加强了低代码的市场活跃度。

低代码衍生新产品类型,重构体系化能力框架

低代码的主要作用是降低应用开发的准入门槛,赋能不同角色人员,让开发者利用图形化界面,通过拖拉拽操作,以“搭积木”的方式快速开发软件应用,减少重复的基础搭建工作。

中国信通院基于低代码·无代码推进中心的研究工作,将低代码产品的共性核心能力分为以下五点:

开发及管理能力,指提供可视化开发及配置的能力,提供开发过程和开发资源的管理能力,提供开发过程产物的产生、复用、删除的生命周期管理能力。支持完成前端页面搭建、前后端交互逻辑配置、数据模型配置、业务逻辑配置、实时预览、版本保存等全栈开发环节,快速构建应用。

扩展与集成能力,分为两个方面:一是扩展能力,在可视化开发的基础上,需要提供代码开发能力,通过少量代码支持对组件、功能等各颗粒度的资源进行扩展完善;二是集成能力,可以通过集成文件、工具、系统等外部能力,增强开发能力,覆盖更多应用领域,也可以通过集成接口,向外赋能低代码开发能力。

用户体验,指基于低代码产品的学习成本、易用性等因素带来的用户体验感,其能力水平难以量化,需要从产品设计与开发者思维的契合程度,可视化和代码开发的均衡程度,操作教学、能力认证、协作开发等权限管理及服务的功能完备度等多方面进行衡量。

生态能力,指多端响应式支持、上下游连通、应用二次开发等多方面功能。在生态环境层面,能够实现业务迁移,减少用户使用或更换低代码产品的成本消耗,增加用户的产品选择自由度;在产品发展层面,能够完善自身,扩大服务能力,增强产品生命力。

安全保障,指提供对产品自身及用户资产的安全保障功能。面对低代码产品,安全问题涉及人员泄露、设备部署、网络入侵等多方面,需要满足国家网络安全保障要求及应用领域的特殊安全性要求,全方位帮助开发者构建安全合规的软件应用。

图-低代码产品能力框架 (图源/中国信通院  )

基于低代码的应用特点和能力框架,市场已经衍生出两种产品类型,分别是低代码开发平台低代码开发工具

1.低代码开发平台

低代码开发平台是指运用低代码技术将底层架构和基础设施等抽象为图形界面,以可视化设计及配置为主,少量代码为辅,提供快速搭建页面、设计数据模型、创建业务逻辑等能力,实现应用快速构建的开发平台。

低代码开发平台必须具备以下能力:

应用全生命周期管理,指支持设计、开发、测试、部署、迭代、运维的全生命周期管理能力。实现应用开发效率提升、需求快速响应、敏捷迭代更新、运营维护便捷等功能,打造一站式的应用开发平台。

2.低代码开发工具

低代码开发工具是面向专业开发者的应用开发工具,通过图形界面或领域专用语言(DSL)简化应用开发过程,以标准化工具为基础,场景化工具及个性化工具为扩展,同时可支持常规编程工具对应用源码进行二次开发,有效提升应用开发效率、提升共性组件复用率、降低工程维护成本。

低代码开发工具必须具备以下能力:

依赖软件包管理,指向开发者披露应用依赖软件包清单,并开源自研应用依赖软件包,便于开发者查看并选用合适的低代码工具,也便于对应用进行二次开发。

 

新IT技术融合带来新力量,低代码发展前景可观

 

云原生技术是数字化转型技术发展的基石,提供多方面保障。在容器、微服务、DevOps等云原生技术广泛应用下,极大地降低了算力成本,使低代码摆脱性能的桎梏,打破了市场对低代码的固有认知,重新掀起低代码浪潮。

目前市场中低代码产品以开发平台为主,云原生技术与低代码技术的结合能够带来多重软件开发优势:

优势1:第一部署方式多样化

部署方式可以扩展为公有化部署、私有化部署和多版本、多环境部署,支持根据应用方的需求制定部署方式及资源,提供应用场景的多样化选择和应用数据等资产的保障;

优势2:提升协同工作能力,加强研发效率

开发团队轻松将企业业务解耦,兼容已有的敏捷研发方案和工具,整合技术优势,进一步加强敏捷迭代效率;

优势3:开发资源云上存储,功能持续完善

可视化开发能力边界由开发者能力、资源储备量、智能化程度等条件共同决定,云存储可以大量扩充页面,组件,函数,模板等可视化资源储备量,并提供存储安全保障、存储管理、资源对接调用等能力;

优势4:保障平台及应用高可用、高可靠和高安全

容器化的典型技术特征是极致的弹性能力,可实现秒级甚至是毫秒级的弹性响应,提升性能水平,使得云上的低代码产品拥有快速的故障自愈和弹性伸缩的能力,让平台的稳定性得到质的提升,构建和运行可弹性扩展的应用,保障业务高效、稳定地运行;

优势5:提升自动化能力

随着研运一体化敏捷创新,传统人工已经难以应对海量的数据处理和漏洞筛查,通过自动化收集、分析、筛选、改进的能力,取代部署、配置、管理等人工操作,整体降低安全风险,加速业务发展和创新。

图-低代码与新IT技术融合赋能数字化转型

(图源/中国信通院  )

近年来,新IT技术融合应用是大势所趋,低代码已陆续与AI、大数据、RPA、IOT、SaaS平台等技术和资源进行整合,在智能分析、数字孪生等领域发挥重要的助推作用。低代码既能促进技术融合,激发技术应用潜力,又能不断充实自身能力,赋能全链路开发,渗透业务场景,挖掘数据的潜在价值,实现数字化赋能,是技术发展和应用创新的重要一环。

以云畅科技自研的万应低代码平台为例,其基于可视化和模型驱动理念,采用云原生与多端融合技术,在技术融合和助力企业资源整合上有着区别于其他平台的天然优势,为众多行业企业数字化转型提供着坚实的技术支撑,共同擎画着一幅幅智慧城市数字产业发展新蓝图。

下一期,将带来低代码产品能力定位图解读,敬请关注!

 

相关文章:

  • OPT华东产业园封顶,机器视觉产业版图再扩大!
  • 多肽RGD修饰乳清白蛋白/肌白蛋白/豆清白蛋白/蓖麻蛋白/豌豆白蛋白1b ( PA1b)纳米粒(实验原理)
  • 基于Mybatis-Plus扩展批量插入或更新InsertOrUpdateBath
  • LeetCode·701.二叉搜索树中的插入操作·递归
  • 数据结构试题(一)
  • DevSecOps 安全即代码基础指南
  • js字符串对比之localeCompare()方法-对字符串进行排序——大于0-升序、小于0-降序 对el-table的列进行排序sort-change
  • Vue开发环境安装
  • springboot小型命题系统毕业设计源码011508
  • 61-70==c++知识点
  • 一文快速上手 Nacos 注册中心+配置中心!
  • 云扩RPA携手中联教育引领财务机器人教学创新
  • 入阿里P6?最少啃完这本阿里最新Java多线程编程手册,建议收藏
  • 【毕业设计】深度学习人脸表情识别系统 - python OpenCV
  • 基于HTML仿华为手机网站电商项目的设计与实现
  • [iOS]Core Data浅析一 -- 启用Core Data
  • 《用数据讲故事》作者Cole N. Knaflic:消除一切无效的图表
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • 78. Subsets
  • android 一些 utils
  • Laravel5.4 Queues队列学习
  • Node 版本管理
  • PHP变量
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • Vue.js 移动端适配之 vw 解决方案
  • 多线程 start 和 run 方法到底有什么区别?
  • 分布式熔断降级平台aegis
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 算法系列——算法入门之递归分而治之思想的实现
  • RDS-Mysql 物理备份恢复到本地数据库上
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • ​​​​​​​​​​​​​​汽车网络信息安全分析方法论
  • ​批处理文件中的errorlevel用法
  • #QT(一种朴素的计算器实现方法)
  • #我与Java虚拟机的故事#连载12:一本书带我深入Java领域
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • (1)STL算法之遍历容器
  • (2015)JS ES6 必知的十个 特性
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (力扣记录)1448. 统计二叉树中好节点的数目
  • (论文阅读40-45)图像描述1
  • (转)Oracle存储过程编写经验和优化措施
  • *++p:p先自+,然后*p,最终为3 ++*p:先*p,即arr[0]=1,然后再++,最终为2 *p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1]
  • ./configure,make,make install的作用
  • .net core使用ef 6
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .Net IOC框架入门之一 Unity
  • .net mvc actionresult 返回字符串_.NET架构师知识普及
  • .net Signalr 使用笔记
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .NET简谈互操作(五:基础知识之Dynamic平台调用)
  • .NET企业级应用架构设计系列之结尾篇
  • /etc/fstab 只读无法修改的解决办法
  • @ConditionalOnProperty注解使用说明