从前端智能化看“低代码/无代码”

简介: 什么是低代码/无代码开发?业界对于低代码/无代码开发是否存在其他不同的理解?低代码开发和无代码开发之间的区别是什么?

image.png

作者 | 甄子
来源 | 阿里技术公众号

一 概念

1 什么是低代码/无代码开发?业界对于低代码/无代码开发是否存在其他不同的理解?

行业里流行观点,低代码是更加易用的搭建系统,无代码是图形化和可视化编程。这种观点把低代码和无代码开发分别置于 UI 和逻辑两个环节,以工具属性定义搭建和可视化编程要解决的问题。另一种观点则是把低代码/无代码看作一个方法的两个阶段,就像对自动驾驶的 L0 ~ L5 共 6 个不同阶段一样,把我之前在《人机协同的编程方式》[1] 一文提出的人机协同编程的概念,划分为低代码/无代码两个阶段。较之第一种我更加认同第二种观点,不仅因为是我提出的,更因为第二种观点是以软件工程的统一视角定义、分析和解决问题,而第一种观点只是局部和过程的优化而非颠覆性创新。

今天“人机协同的编程方式”把软件工程从拼装 UI 和编写业务逻辑里解放出来,逐步向业务能力、基础能力、底层能力等高技术含量工作过渡。更多内容参考《前端智能化:思维转变之路》[2]。

2 低代码开发和无代码开发之间的区别是什么?

接着上述所答,既然低代码和无代码属于“人机协同编程”的两个阶段,低代码就是阶段一、无代码则是阶段二,分别对应“人机协作”和“人机协同”。协作和协同最大的区别就是:心有灵犀。不论低代码还是无代码,均有服务的对象:用户。不论用户是程序员还是非编程人员,均有统一目标:生成代码。不论源码开发、低代码还是无代码,都是在用不同的方式描述程序,有代码、图形、DSL……等。“人机协作”的阶段,这些描述有各种限制、约束,应用的业务场景亦狭窄。“人机协同”的阶段,则限制、约束减少,应用的业务场景亦宽广。“心有灵犀”就是指:通过 AI 对描述进行学习和理解,从而减少限制和约束,适应更多业务场景。因此,传统低代码/无代码和“人机协同编程”生成代码相比,最大的不同就是有心和无心,机器有心而平台无心。

二 背景

1 低代码/无代码开发与软件工程领域的一些经典思想、方法和技术,例如软件复用与构件组装、软件产品线、DSL(领域特定语言)、可视化快速开发工具、可定制工作流,以及此前业界流行的中台等概念,之间是什么关系?

从库、框架、脚手架开始,软件工程就踏上了追求效率的道路。在这个道路之上,低代码、无代码的开发方式算是宏愿。复用、组件化和模块化、DSL、可视化、流程编排……都是在达成宏愿过程中的尝试,要么在不同环节、要么以不同方式,但都还在软件工程领域内思考。中台概念更多是在业务视角下提出的,软件工程和技术领域内类似的概念更多是叫:平台。不论中台还是平台,就不仅是在过程中的尝试,而是整体和系统的创新尝试。我提出前端智能化的“人机协同编程”应该同属于软件工程和技术领域,在类似中台的业务领域我提出“需求暨生产”的全新业务研发模式,则属于业务领域。这些概念之间无非:左右、上下、新旧关系而已。

2 此外,低代码/无代码开发与DevOps、云计算与云原生架构之间又是什么样的关系?

DevOps、云计算……都属于基础技术,基础技术的变化势必带来上层应用层技术变化。没有云计算的容器化、弹性缩扩容,做分布式系统是很困难的,尤其在 CI/CD、部署、运维、监控、调优……等环节更甚,什么南北分布、异地多活、平行扩展、高可用……都需要去关注。但是,云计算和DevOps等基础技术的发展,内化并自动化解决了上述问题,大大降低了关注和使用成本,这就是心有灵犀,在这样的基础技术之上构建应用层技术,限制少、约束小还能适应各种复杂场景。

三 思想方法

1 支撑低代码/无代码开发的核心技术是什么?

我认为低代码/无代码开发的核心技术,过去是“复用”,今天是 AI 驱动的“人机协同编程”。过去的低代码/无代码开发多围绕着提升研发效能入手,今天 AI 驱动的“人机协同编程”则是围绕着提升交付效率入手。因此,低代码/无代码开发以“人机协同编程”为主要实现手段的话,AI 是其核心技术。

2 低代码/无代码开发的火热是软件开发技术上的重要变革和突破,还是经典软件工程思想、方法和技术随着技术和业务积累的不断发展而焕发出的新生机?

计算机最初只在少数人掌握,如今,几乎人人手持一台微型计算机:智慧手机。当初为程序员和所谓“技术人员”的专利,而今,几乎人人都会操作和使用计算机。然而,人们对计算机的操作是间接的,需要有专业的人士和企业提前编写软件,人们通过软件使用计算机的各种功能。随着计算机算力和功能的不断发展,随着社会的数字化和信息化,今天的人们越来越难以被提前定制好的软件所满足。低代码/无代码开发则赋予人们创造软件的能力,进而帮助人们低成本、即时、高效的直接生产符合自己需求的软件,进而操作众多复杂的电子设备和数字世界建立联结。我认为,这是不可逆的趋势,也是低代码/无代码开发的大方向。

四 现状进展

1 低代码/无代码开发已经发展到什么程度?

image.png

imgcook

  • 2w 多用户、6w 多模块、 0 前端参与研发的双十一等大促营销活动、70% 阿里前端在使用
  • 79.26% 无人工参与的线上代码可用率、90.9% 的还原度、Icon 识别准确率 83%、组件识别 85%、布局还原度 92.1%、布局人工修改概率 75%
  • 研发效率提升 68%

uicook

  • 营销活动和大促场景 ui 智能生成比例超过 90%
  • 日常频道导购业务 ui 智能生成覆盖核心业务
  • 纯 ui 智能化和个性化带来的业务价值提升超过 8%

bizcook

  • 初步完成基于 NLP 的需求标注和理解系统
  • 初步完成基于 NLP 的服务注册和理解系统
  • 初步完成基于 NLP 的胶水层业务逻辑代码生成能力

reviewcook

  • 针对资损防控自动化扫描、CV 和 AI 自动化识别资损风险和舆情问题
  • 和测试同学共建的 UI 自动化测试、数据渲染和 Mock 驱动的业务自动化验证
  • 和工程团队共建的 AI Codereview 基于对代码的分析和理解,结合线上 Runtime 的识别和分析,自动化发现问题、定位问题,提升 Codereview 的效率和质量

datacook

  • 社区化运营开源项目,合并 Denfo.js 同其作者共同设立 Datacook 项目,全链路、端到端解决 AI 领域数据采集、存储、处理问题,尤其在海量数据、数据集组织、数据质量评估等深度学习和机器学习领域的能力比肩 HDF5、Pandas……等 Python 专业 LIbrary
  • Google Tensorflow.js 团队合作开发维护 TFData library ,作为 Datacook 的核心技术和基础,共同构建数据集生态和数据集易用性

pipcook

  • 开源了 pipcook[3] 纯前端机器学习框架
  • 利用 Boa 打通 Python 技术生态,原生支持 import Python 流行的包和库,原生支持 Python 的数据类型和数据结构,方便跨语言共享数据和调用 API
  • 利用 Pipcook Cloud 打通流行的云计算平台,帮助前端智能化实现 CDML,形成数据和算法工程闭环,帮助开发者打造工业级可用的服务和在线、离线算法能力

2 有哪些成熟的低代码/无代码开发平台?

1.jpg
2.jpg
3.jpg

3 低代码/无代码开发能够在多大程度上改变当前的软件开发方式?

随着计算机算力和功能的不断发展,随着社会的数字化和信息化,今天的人们越来越难以被提前定制好的软件所满足。低代码/无代码开发则赋予人们创造软件的能力,进而帮助人们低成本、即时、高效的直接生产符合自己需求的软件,进而操作众多复杂的电子设备和数字世界建立联结。我认为,这是不可逆的趋势,也是低代码/无代码开发的大方向。最终,软件开发势必从专业程序员手里转向普罗大众,成为今天操作计算机一样的基本生存技能之一。因此,软件开发方式将带来本质变化,从完整的交付转向局部交付、从业务整体交付转向业务能力交付……

五 展望未来

1 低代码/无代码开发未来发展的方向是什么?

要我说,低代码/无代码开发未来发展的方向一定是:AI 驱动的“人机协同编程”,将完整开发一个软件变成提供局部的软件功能,类似 Apple 的“捷径”一样,由用户决定这些局部软件功能如何组装成适合用户的软件并交付最终用户。AI 驱动提供两个方面的价值:

降低开发成本

以往开发软件的时候,要有 PRD、交互稿、设计稿、设计文档……等一系列需求规格说明,然后,根据这些需求规格利用技术和工程手段进行实现。然而,低代码/无代码开发交付的是局部功能和半成品,会被无法枚举的目的和环境所使用,既然无法枚举,就不能用 Swith……Case 的方式编写代码,否则会累死。

AI 的特点就是基于特征和环境进行预测,预测的基础是对模式和本质的理解。就像 AI 识别一只猫,不管这个猫在什么环境、什么光照条件下,也不管这只猫是什么品种,AI 都能够以超过人类的准确度识别。试想,作为一个程序员用程序判断一只猫的开发成本何其高?

降低使用成本

今天的搭建体系,本质上是把编程过程用搭建的思想重构了一遍,工作的内容并没有发生变化,成本从程序员转嫁到运营、产品、设计师的身上。这还是其次,今天的搭建平台都是技术视角出发,充斥着运营、产品、设计等非技术人员一脸懵逼的概念,花在答疑解惑和教他们如何在页面上定制一个搜索框的时间,比自己和他们沟通后源码实现的时间还要长,而且经常在撸代码的时候被打断……

基于 AI 的“人机协同编程”不需要透出任何技术概念,运营、产品、设计……等非技术人员也不改变其工作习惯,都用自己熟悉的工具和自己熟悉的概念描述自己的需求,AI 负责对这些需求进行识别和理解,再转换成编程和技术工程领域的概念,进而生成代码并交付,从而大幅度降低使用成本。

举个例子:如果你英文写作能力不好,你拿着朗道词典一边翻译一边拼凑单词写出来的英文文章质量高呢?还是用中文把文章写好,再使用 Google 翻译整篇转换成英文的文章质量高?你自己试试就知道了。究其原因,你在自己熟悉的语言和概念领域内,才能够把自己的意思表达清楚。

2 围绕低代码/无代码开发存在哪些技术难题需要学术界和工业界共同探索?

最初在 D2 上提出并分享“前端智能化”这个概念的时候,我就提出:识别、理解、表达 这个核心过程。我始终认为,达成 AI 驱动的“人机协同编程”关键路径就是:识别、理解、表达。因此,围绕 AI 识别、 AI 理解、 AI 表达我们和国内外知名大学展开了广泛的合作。

识别

  • 需求的识别:通过 NLP 、知识图谱、图神经网络、结构化机器学习……等 AI 技术,识别用户需求、产品需求、设计需求、运营需求、营销需求、研发需求、工程需求……等,识别出其中的概念和概念之间的关系
  • 设计稿的识别:通过 CV、GAN、对象识别、语义分割……等 AI 技术,识别设计稿中的元素、元素之间的关系、设计语言、设计系统、设计意图
  • UI 的识别:通过用户用脚投票的结果进行回归,后验的分析识别出 UI 对用户行为的影响程度、影响效果、影响频率、影响时间……等,并识别出 UI 的可变性和这些用户行为影响之间的关系
  • 计算机程序的识别:通过对代码、AST ……等 Raw Data 分析,借助 NLP 技术识别计算机程序中,语言的表达能力、语言的结构、语言中的逻辑、语言和外部系统通过 API 的交互等
  • 日志和数据的识别:通过对日志和数据进行 NLP、回归、统计分析等方式,识别出程序的可用性、性能、易用性等指标情况,并识别出影响这些指标的日志和数据出自哪里,找出其间的关系

理解

  • 横向跨领域的理解:对识别出的概念进行降维,从而在底层更抽象的维度上找出不同领域之间概念的映射关系,从而实现用不同领域的概念进行类比,进而在某领域内理解其它领域的概念
  • 纵向跨层次的理解:利用机器学习和深度学习的 AI 算法能力,放宽不同层次间概念的组成关系,对低层次概念实现跨层次的理解,进而形成更加丰富的技术、业务能力供给和使用机会
  • 常识、通识的理解:以常识、通识构建的知识图谱为基础,将 AI 所面对的开放性问题领域化,将领域内的常识和通识当做理解的基础,不是臆测和猜想,而是实实在在构建在理论基础上的理解

表达

  • 个性化:借助大数据和算法实现用户和软件功能间的匹配,利用 AI 的生成能力降低千人前面的研发成本,从而真正实现个性化的软件服务能力,把软件即服务推向极致
  • 共情:利用端智能在用户侧部署算法模型,既可以解决用户隐私保护的问题,又可以对用户不断变化的情绪、诉求、场景及时学习并及时做出响应,从而让软件从程序功能的角度急用户之所急、想用户之所想,与用户共情、让用户共鸣。举个例子:我用 iPhone 在进入地铁站的时候,因为现在要检查健康码,每次进入地铁站 iOS 都会给我推荐支付宝快捷方式,我不用自己去寻找支付宝打开展示健康码,这就让我感觉 iOS 很智能、很贴心,这就是共情。

六 后记

从提出前端智能化这个概念到现在已历三年,最初,保持着“让前端跟上 AI 发展的浪潮”的初心上路,到“解决一线研发问题”发布[4],再到“给前端靠谱的机器学习框架”开源[3] ,这一路走来,几乎日日夜不能寐。真正想从本质上颠覆现在的编程模式和研发模式谈何容易?这个过程中,我们从一群纯前端变成前端和 AI 的跨界程序员,开发方式从写代码到机器生成,周围的人从作壁上观到积极参与,正所谓:念念不忘,必有回响。低代码/无代码开发方兴未艾,广大技术、科研人员在这个方向上厉兵秣马,没有哪个方法是 Silverbullet ,也没有哪个理论是绝对正确的,只要找到你心中所爱,坚持研究和实践,终会让所有人都能够自定义软件来操作日益复杂和强大的硬件设备,终能让所有人更加便捷、直接、有效的接入数字世界,终于在本质上将软件开发和软件工程领域重新定义!共勉!

原文链接

本文为阿里云原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/513787.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

初二物理模型有哪些_暑假新初二、新初三的数学该怎么学,教辅怎么买,题该怎么刷?看这里~...

这个暑假对于新初二和新初三的孩子都非常关键,因为下一学期的数学难度都要上升一个台阶,自古相传一句老话“初二两极分化,初三天上地下”,其实引起这么大化学反应的原因就是在于数学和科学这两门理科在八上和九上有了一个质变。我…

低代码会让程序员更加内卷吗?

作者| Mr.K 编辑| Emma来源| 技术领导力(ID:jishulingdaoli)今天的主题呢主要是来源于最近的一个很火的话题——『低代码』。低代码会不会让程序员更加内卷?要回答这个问题,需要先弄清楚:低代码适合做什么,不适合做什…

技术干货 | 应用上线前的“体检”,你知道需要检测哪些指标吗?

简介: 应用上线前检测哪些项目?如何检测?检测数据指标包括哪些? 随着越来越多的企业基于 mPaaS 搭建并上线新的 App,App 的上线质量也成为各个客户关注的重点。上线前检测哪些项目?如何检测?检…

python 机器学习_基于 Python 语言的机器学习工具Sklearn

本篇介绍了Sklearn机器学习基础,从Sklearn的简介,模块以及与tensorflow的优劣势对比来了解基于Python语言的机器学习工具。01、Sklearn简介sklearn(scikit-learn)是Python重要的学习库,它封装了机器学习中常用的算法,包括监督学习…

那些你不知道的TCP冷门知识!

简介: 最近在做数据库相关的事情,碰到了很多TCP相关的问题,新的场景新的挑战,有很多之前并没有掌握透彻的点,大大开了一把眼界,选了几个案例分享一下。 最近在做数据库相关的事情,碰到了很多TC…

CPU 可以跑多快?地球到火星的距离告诉你!

来源:码农的荒岛求生作者:码农的荒岛求生这张出自Google大神 Jeff Dean的图,展示系统中各种关键操作的时延具体有多少。需要注意的是这张图上的数据自2012年后就没有再更新过了,统计自2020年的最新数据见这里:这张图中…

步进电机五根线怎么接_步进驱动和伺服驱动的区别

概述步进电机主要是依相数来做分类,而其中又以二相、五相步进电机为目前市场上所广泛采用。二相步进电机每转最细可分割为400等分,五相则可分割为1000等分,所以表现出来的特性以五相步进电机较佳、加减速时间较短、动态惯性较低。随着全数字式…

可观测告警运维系统调研——SLS告警与多款方案对比

简介: 本文介绍对比多款告警监控运维平台方案,覆盖阿里云SLS、Azure、AWS、自建系统(ELK、Prometheus、TICK)等方案。 前言 本篇是SLS新版告警系列宣传与培训的第三篇,后续我们会推出20系列直播与实战培训视频&#…

Flagger on ASM·基于Mixerless Telemetry实现渐进式灰度发布系列 1 遥测数据

简介: 服务网格ASM的Mixerless Telemetry技术,为业务容器提供了无侵入式的遥测数据。遥测数据一方面作为监控指标被ARMPS/prometheus采集,用于服务网格可观测性;另一方面被HPA和flaggers使用,成为应用级扩缩容和渐进式…

Flagger on ASM——基于Mixerless Telemetry实现渐进式灰度发布系列 2 应用级扩缩容

简介: 应用级扩缩容是相对于运维级而言的。像监控CPU/内存的利用率就属于应用无关的纯运维指标,针对这种指标进行扩缩容的HPA配置就是运维级扩缩容。而像请求数量、请求延迟、P99分布等指标就属于应用相关的,或者叫业务感知的监控指标。 本篇…

自动替换 Kubernetes 镜像

来源:云原生指北作者:Addo Zhang最近萌生了个想法,维护一个后网络友好的仓库镜像,在 Pod 创建时将镜像仓库切换到自维护的仓库,从自维护的仓库拉取镜像。前几天体验了极狐Gitlab 的容器镜像库,便是为这个想…

Flagger on ASM——基于Mixerless Telemetry实现渐进式灰度发布系列 3 渐进式灰度发布

简介: 作为CNCF[成员](https://landscape.cncf.io/card-mode?categorycontinuous-integration-delivery&groupingcategory&selectedweave-flagger),[Weave Flagger](flagger.app)提供了持续集成和持续交付的各项能力。Flagger将渐进式发布总结为…

react 使用 leaflet 百度地图_【React】react项目中应用百度地图添加起始点绘制路线...

如图:项目中百度地图的应用添加起始点、终点并绘制路线在展示代码的时候首先展示一下后台返回给我的接口{其中position_list参数代表的是用户的行驶点, area参数代表的是服务区的坐标点,下面会用到参数下面开始展示代码了index.html引入百度地…

基线长度中误差的计算_电子战支援实施中的测向技术

派遣一个机载电子战机组执行支援压制敌防空系统任务,在任务计划阶段,全体人员将会获取任务区域内的EOB,机载电子战人员会优先识别他们在任务期间可能会遇到的威胁辐射源,以及其他中立、友好辐射源。当机载电子战人员进入目标作战区…

洞察设计模式的底层逻辑

简介: 设计模式是开发同学经常聊到的话题,也经常被用到实际的开发项目中,熟练的人可以做到信手拈来,不熟悉的人陷入苦思冥想中。笔者认为,不仅仅要掌握设计模式的用法,更要洞察设计模式的底层逻辑&#xff…

pta段错误是什么意思_用Python执行Django数据迁移时报!(1091错误及解决方法)...

前言:今天为大家带来的内容是用Python执行Django数据迁移时报!(1091错误及解决方法)本文内容具有不错的参考意义,希望在此能够帮助到大家!前几天在Pycharm 中的Terminal下,执行数据迁移操作时:第一步: Pyth…

cad大理石填充图案_CAD制图初学入门者必须知道的CAD填充问题

在使用浩辰CAD软件绘制图纸的过程中,经常会用到CAD填充功能。但是CAD制图初学入门者在进行CAD填充时偶尔会遇到一些问题,比如在自己的CAD软件中填充是完整的,但是在别人的CAD软件中打开却出现了缺口,这是什么原因呢?接…

苹果:iOS 比 Android 更安全!

整理 | 祝涛 出品 | CSDN据报道,在答复欧盟委员会数字市场行动的函件中,苹果援引诺基亚2019年、2020年的威胁情况报告称,安卓平台恶意软件的数量是iPhone的15~47倍。苹果称iOS比安卓安全就在于无法绕过商店安装软件,因此坚决…

日志服务SLS 助力识货 APP,解决业务数据采集查询监控问题

简介: 日志服务SLS 助力识货 APP,解决业务数据采集查询监控问题 更多存储标杆案例 欢迎点击下方链接查看 阿里云存储标杆案例样板间 公司介绍 识货APP是虎扑体育旗下的导购应用,致力于为广大年轻用户提供专业的网购决策指导,为…

html5 烟雾,jQuery烟雾背景发生器(HTML5 Canvas插件waterpipe.js

插件描述:waterpipe.js是一个创建烟雾弥漫的背景,有多种效果可选择,自定义参数效果还是挺酷的哦!使用方法1、包括jQuery和waterpipe.js2、创建画布元素内包装Your browser does not support HTML5 canvas.3、创建画布元素内包装var smokyBG …