伙伴云客服论坛»论坛 S区 S零代码 查看内容

10 评论

0 收藏

分享

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

从前端智能化看“低代码/无代码”-1.jpg

一 概念

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 低代码/无代码开发已经开展到什么水平?

从前端智能化看“低代码/无代码”-2.jpg

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 有哪些成熟的低代码/无代码开发平台?

从前端智能化看“低代码/无代码”-3.jpg


从前端智能化看“低代码/无代码”-4.jpg


从前端智能化看“低代码/无代码”-5.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 ,也没有哪个理论是绝对正确的,只要找到你心中所爱,坚持研究和理论,终会让所有人都可以自定义软件来操作日益复杂和强大的硬件设备,终能让所有人更加便利、直接、有效的接入数字世界,终于在实质上将软件开发和软件工程领域重新定义!共勉!
相关链接
[1]https://juejin.cn/post/6844904116708196365
[2]
https://juejin.cn/post/6844904104448393223
[3]
https://github.com/alibaba/pipcook
[4]
http://imgcook.com


作者 | 甄子
本文为阿里云原创内容,未经允许不得借鉴。

回复

举报 使用道具

相关帖子
全部回复 (10)
查看全部
这就是个伪命题,整天讨论来讨论区。

举报 回复 支持 反对 使用道具

转发了

举报 回复 支持 反对 使用道具

转发了

举报 回复 支持 反对 使用道具

迟早有一天程序员把自己弄失业咯[奸笑]

举报 回复 支持 反对 使用道具

转发了

举报 回复 支持 反对 使用道具

转发了

举报 回复 支持 反对 使用道具

万一这个真被研发出来了,前端不就失业了

举报 回复 支持 反对 使用道具

转发了

举报 回复 支持 反对 使用道具

转发了

举报 回复 支持 反对 使用道具

本版积分规则 高级模式
B Color Image Link Quote Code Smilies

嘀嘀小猪
注册会员
主题 9
回复 23
粉丝 0
|网站地图
快速回复 返回顶部 返回列表