您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

所想即所得!AI会如何改变程序开发?

时间:2022-12-01 10:54:53  来源:CSDN  作者:

作者 | 卞安       责编 | 屠敏

出品 | CSDN(ID:CSDNnews)

AI 作画,作为一个局部领域的产品方向,在基于机器学习算法基础上,为世界打开了一扇大门,随着 AI 作画类软件的大放异彩,基于 AI 进行内容生产话题也越来越受到关注。

作为一名程序员,我们又应该怎么来看待 AI 的这些成果对于开发方式的影响,在此,笔者有幸受邀为各位小伙伴分享一下个人的看法。

在美国科罗拉多州艺术博览会上基于 Midjourney 获奖的 AI 画作《太空歌剧院》

AI 将改写程序员的开发方式

AI 的底层算法一般是基于神经网络进行建模,通过在神经元上的数学算法不断的训练数据调整建模,使误差向最小靠近的过程。这是一种非常酷的思维方式,它使得计算机可以通过算法寻找到数据变化的趋势。在此基础上发展起来的生成对抗网络,使得计算机学习和模仿数字化内容变的更加可信,这些数字化内容不但包括文本(新闻和小说生成)、图像(AI绘图与视频),3D 模型(AI 生成游戏场景),也包括编程代码和文档。

虽然我们目前还没有能够走到直接通过 AI 来生成完整的项目的地步,但在 AI 大发展的背景下,如何高效、快速、更好的达到编程目标,正在成为解决问题中一个重要的考虑因素。

我们可以对比 AI 的工作原理,反思编程工作中的痛点,预测一些潜在的可能性,也许未来这些可能性会极大的推动我们的编程和工作方式。

从工作形态的进化趋势上来看,预期会分为三个阶段:

第一阶段:编码工作的辅助智能化

这一阶段的主要体现是:通过搜集、归类、梳理编程开发项目中大量的可复用部分(如算法、功能函数或模块)形成数据集,通过对输入意向和数据集进行训练和学习的方式,形成优良的辅助功能,提升程序员的开发效率。

在具体实践上,一些企业已经推出了相关工具类产品:

GitHub Copilot :  通过语音输入指令让 IDE 自动提示并生成代码。

Copilot 是 GitHub 今年早些时候推出的人工智能编程辅助工具,2022 年 6  月 22 日已正式上线(https://github.com/features/copilot),定价每月 10 美元(约 66.9 元人民币)或每年 100 美元(约 669 元人民币),对学生用户和流行开源项目的维护者免费提供。

经过数十亿行代码的训练,它可以将自然语言提示转化为数十种语言的编码建议,支持 Python/ target=_blank class=infotextkey>Python、JAVAScript、TypeScript、Java、Ruby 和 Go 等编程语言。根据今年 GitHub Universe 开发者大会报告给出的数据,Copilot 已经通过基于 AI 的编码建议,帮助全球开发者的工作效率提高了 55%。

2. GodeGeeX:通过输入文字描述让 IDE 自动提示并生成代码。

与此相近的一款国产工具叫做 GodeGeeX(https://models.aminer.cn/codegeex/),来自清华大学知识工程实验证(KEG),CodeGeeX 是一款具有 130 亿参数的多语言代码生成模型,采用华为 MindSpore 框架实现,在鹏城实验室“鹏城云脑II”中的 192 个节点(共 1536 个国产昇腾 910 AI 处理器)上训练而成。

截至 2022 年 6 月 22 日,CodeGeeX 历时两个月在 20 多种编程语言的代码语料库(>8500 亿 Token)上预训练得到。它可以跟据你的描述,或者上下文自动生成一段代码,和以往的代码补全功能是完成不同的。目前支持 Python、C++、Java、JavaScript、Go 五种主流编程语言,而且在准确度上表现较好。

除此之外,还有 Kite、Codota、DeepCode 等一些基于机器学习的 AI 代码生成工具,本质上都是通过大量的代码训练,来智能预测出需要生成的代码,加快编程的效率。

总体来说,这一阶段的产品推动者不需要面向业务,只需要考虑面向程序员,可以达到辅助程序员提升业务开发速度的目标,也可以较好的通过工具化产品形成规范,解决企业的代码风格化统一问题。未来可能会广泛的成为程序员工作中的标配,程序员将不会再花大量的精力在高复用度的具体代码函数设计,而更多的把精力放在业务模块的设计实现。

第二阶段:业务模块的智能生成

这一阶段的主要体现是:通过搜集、归类、梳理相关领域业务开发项目中大量的通用业务(如游戏研发中的登录模块、热更新模块、聊天模块、战斗模块等业务逻辑)形成数据集,通过对业务设计意向和数据集进行训练和学习的方式,自动的进行业务模块前后端框架生成,优化工作流程,提升业务模块的产品设计迭代和研发速度。

我们可以通过一个实例工具软件来理解这个过程,Adobe 推出过的网页三剑客之一的 Dreamweave,其中提供了大量的模块生成功能,比如通过设定数据集和表单的控件对应关系,就可以生成前后端的代码,实际提供一个可以运行的业务模块。

当然,这是由没有结合人工智能辅助的情况,如果基于新的智能化生成,那我们在开发时,智能化生成模块会自动跟据上下文来提示是否需要生成相应的业务前后端模块,我们只需要再跟据生成的模块进行微调或扩展即可达到我们的要求。

下图是笔者使用 DreamWeaver 来生成一个简单的登录模块,只需要设定一下数据表字段,即可生成表单,完成登录判断和跳转功能。

又或者在游戏开发领域。作者曾在企业负责技术中台设计时,推动过面向各游戏项目组通用业务模块的抽象与开发,比如热更新、原生接口调用,甚至包括游戏战斗机制等大量的通用业务,对于每一个项目几乎都是需要的,只是因为技术栈或者界面的不同而需要重复的开发,这些工作往往耗时耗力。

站在一个更高的维度,这些业务完全可以基于机器学习训练结合需求变化被快速地进行调整而满足各个项目的使用。所以,基于企业的技术中台,把这些通用业务的统一框架和智能化定制与人工智能结合,基于主流开发软件、引擎工具或平台工具推出可实际操作的软件或插件。从而形成更好的开发工作流是非常有意义的。

这个阶段目前是各领域企业争相降本增效的方向之一,程序员的工作正在进一步从通用业务开发中解放,而把更多的把精力放在具体产品的需求上。

第三阶段:产品原型的智能生成

这一阶段主要体现是:通过对产品研发工作流中可智能化生成的部分进行整合和优化,达到能够根据用户需求自动的生成具备完整功能逻辑和效果表现的产品项目原型的目标,帮助产品经理快速看到期望的结果。

这里以几个案例加以说明:

一、市场上大量自助建网站电商小程序类的平台。

这些平台直接面向用户方,提供给用户可以自助订制化的业务模块并生成最终产品的服务。如腾讯云的自助式建站:

这些平台虽然具备直接生成最终产品的能力,但其底层逻辑主要是基于一定数量的前后端模板和风格模板进行组合,通过固化的需求条目选项得到产品各模板模块的组合结果,产品的领域有限、形态有限、规模有限,目前大部分不具备通过对用户需求分析和产品形态数据集进行机器学习来生成目标产品的能力。

在数字人研发企业里,目前已经在通过对人脸照片,动作视频采用人物脸部识别,动作识别技术来建立模型数据集,通过机器学习对三维模型重建和自动动作绑定,快速化生产高精度数字人,这种方式与以往通过美术建模,手动绑定骨骼及人物动作的工作流有较大差别,它可以大大的加快数字人的生成效率、规模和精度。

在 GTC 大会上,黄仁勋宣布推出一个全方位的虚拟化身平台 —— Omniverse Avatar(来源:https://developer.nvidia.com/nvidia-omniverse-platform/ace)

二、在一些游戏方向,如剧情文字类游戏(AVG)领域,开发者也在通过剧本生成,二次元立绘生成类软件,通过脚本进行完整的游戏产品生产尝试,可以将原本需要几个月才能完成的剧情文字游戏,在短短几个小时内生成出来。

当然,这些方面的业务相对简单,但随着人工智能的发展,相信不久的未来,一个软件产品设计师可以通过提供一些简单的需求描述得到一个完整可运行的产品DEMO。它所要做的,是通过不断的修改需求描述来不断提交,得到期望的产品原型。

总结

最后,我想说的是,内容生成的算法目前在一些方面有了较大突破,但在软件开发领域,特别是开发者工具领域,我们也需要相关企业和创业者不断的结合这些突破,落地到具体的工具软件产品中来提升开发者的工作流程和体验,推出更好的产品形态,谁能够在未来提供更好的智能化内容生成体验,也就会在未来更受欢迎。

作者介绍:卞安,游戏引擎技术专家,CSDN 博客专家,独立软件创业者。从事游戏研发行业近二十年,孜孜不倦地学习和思考引擎研发技术和工具链设计,曾任端游企业引擎技术总监,Cocos 游戏引擎产品总监。目前在学习游戏引擎与 AI 的结合,致力于开发基于 Python 语言的全栈式开发工具软件产品《PyMe》。



Tags:程序开发   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
作者 | 卞安 责编 | 屠敏出品 | CSDN(ID:CSDNnews)AI 作画,作为一个局部领域的产品方向,在基于机器学习算法基础上,为世界打开了一扇大门,随着 AI 作画类软件的大放异彩,基于...【详细内容】
2022-12-01  Tags: 程序开发  点击:(0)  评论:(0)  加入收藏
首先可以肯定,html5(简称h5)将在很多年内成为互联网的主流。那到底什么是h5呢?想了解h5,先要了解它的前身html和被它终结的flash:2000年左右的前端静态网页格式是html的,仅支持ie,n...【详细内容】
2022-09-26  Tags: 程序开发  点击:(64)  评论:(0)  加入收藏
在这个博客中,我们编译了一个基于编程语言和技术堆栈的顶级后端框架列表每天‬分享‬最新‬软件‬开发‬,Devops,敏捷‬,测试‬以及‬项目‬管理‬最新‬,最热门‬的‬文章‬,每天...【详细内容】
2022-06-28  Tags: 程序开发  点击:(71)  评论:(0)  加入收藏
可以这样说,现在使用微信的人,大部分都使用过微信小程序,如今很多行业都开发了自己的微信小程序,微信小程序开发的费用相信大家都听到过不同,有几百也有几千甚至有上万的,价格差距...【详细内容】
2022-04-28  Tags: 程序开发  点击:(123)  评论:(0)  加入收藏
1. 开发小程序时,每个页面一定要在app.json文件中注册,页面文件夹和其包含的四个文件的名字要保持一致。2. 小程序发起的都是HTTPS网络请求,在开发调试的过程中可以不校验协议...【详细内容】
2022-02-24  Tags: 程序开发  点击:(144)  评论:(0)  加入收藏
1. limit1 . 1 基本知识 查看 UNIX 操作系统资源限制 [HP-BILLFEE]limit cputime unlimited filesize unlimited datasize 1048576 kbytes stacksize 8192 kbytes coredumps...【详细内容】
2022-02-21  Tags: 程序开发  点击:(172)  评论:(0)  加入收藏
学习编程从hello world开始。学习微信小程序开发首先要安装一个微信开发者工具,官网上免费下载童叟无欺,下载完傻瓜式安装即可。 双击微信开发者工具,然后选择小程序,然后点击...【详细内容】
2021-05-12  Tags: 程序开发  点击:(508)  评论:(0)  加入收藏
框架主题文件app.json : 小程序公共设置,小程序的全局配置文件app.js: 小程序的逻辑文件,用于注册小程序全局实例,编译时会和其他页面逻辑文件打包成js文件app.wxss:小程序公共样...【详细内容】
2021-03-08  Tags: 程序开发  点击:(359)  评论:(0)  加入收藏
WeUI是什么WeUI 是一套同微信原生视觉体验一致的基础样式库。由微信官方设计团队为微信内网页和微信小程序量身设计,令用户的使用感知更加统一。它最初是为了给在微信端页面...【详细内容】
2021-03-08  Tags: 程序开发  点击:(446)  评论:(0)  加入收藏
自从微信小程序上线之后,很多的商家对小程序有很高的期待,因为小程序的使用体验可以媲美app,而且使用起来比较方便,西安的青云在线小编告诉您,现在微信小程序之所以大家都比较喜...【详细内容】
2021-02-03  Tags: 程序开发  点击:(285)  评论:(0)  加入收藏
▌简易百科推荐
作者 | 卞安 责编 | 屠敏出品 | CSDN(ID:CSDNnews)AI 作画,作为一个局部领域的产品方向,在基于机器学习算法基础上,为世界打开了一扇大门,随着 AI 作画类软件的大放异彩,基于...【详细内容】
2022-12-01    CSDN  Tags:程序开发   点击:(0)  评论:(0)  加入收藏
给大家分享一个事情。背景是这样的,我们要测试某个第三方 SDK 运行性能,这是个 CPU 密集型的服务。我想评估一下它运行一遍到底有多吃 CPU,以便评估上线后我们需要部署多少台服...【详细内容】
2022-11-30  嵌入式Linux  今日头条  Tags:进程   点击:(4)  评论:(0)  加入收藏
我们在电商平台购物时,下单之后会有一个付款倒计时,如果在规定的时间内未付款,订单就会自动关闭。类似这样的场景还有很多,比如优惠劵到期失效,下单后自动发消息等。今天我们来讨...【详细内容】
2022-11-24  程序员拾山  今日头条  Tags:订单   点击:(7)  评论:(0)  加入收藏
近期收到很多朋友的消息,表示对java后端很感兴趣,但是不知道学习java后端的难度如何,都需要学哪些内容。java后端要学什么不是一两句话能够说清楚的,所以整理了本篇文章,供大家参...【详细内容】
2022-11-24  互联网资讯看板     Tags:java   点击:(10)  评论:(0)  加入收藏
最近几年,微服务拆分大行其道,在业务越来越复杂的情况下,许多业务纷纷抛弃了传统单体架构,拥抱微服务。但随着微服务的拆分结束,大家又发现了新的问题,比如服务间逻辑复杂,运维复杂性变高,微服务架构变得越来越难以管理,最终演...【详细内容】
2022-11-24  闪念基因  今日头条  Tags:DDD编程   点击:(5)  评论:(0)  加入收藏
我们在B站看视频的时候偶然发现当字幕遇到人物的时候就被裁切了,不会挡住人物,是不是觉得特别神奇图源:互联网高端的效果,往往只需要采用最朴素的实现方式,我们打开电脑的F12,一探...【详细内容】
2022-11-24  钱得乐  掘金  Tags:弹幕   点击:(14)  评论:(0)  加入收藏
今天给大家介绍一个JPA的好搭档:QueryDSL。0. 前言相对于 MyBatis ,本人更喜欢 Spring Data JPA ,因为它更符合面向对象的思想,然而 JPA 对复杂的查询支持较弱,常见的有两种方式:...【详细内容】
2022-11-21  二哥学Java  今日头条  Tags:QueryDSL   点击:(21)  评论:(0)  加入收藏
云原生是当下IT圈非常热门的一个词,其目的是为了各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生包含很多技术,比如容器、微服务、DevOps...【详细内容】
2022-11-21  华为云开发者联盟    Tags:持续交付   点击:(12)  评论:(0)  加入收藏
大家好,我是Echa.今天来分享 Github 上 8 个很棒的 React 项目,希望能通过学习这些项目的源码,帮助大家更好地理解 React,编写更优雅的 React 代码!概览: React Tetris: 俄罗斯方...【详细内容】
2022-11-20  Echa攻城狮  今日头条  Tags:React   点击:(24)  评论:(0)  加入收藏
引言VHDL编程语言语法内容很多很杂,包括用于编程的规定、用于仿真的规定以及用于描述的规定。对于刚刚接触VHDL语言的设计者而言,拿到厚厚的VHDL编程语言书籍,往往有无从下手感...【详细内容】
2022-11-17  newpowerleader  今日头条  Tags:VHDL   点击:(39)  评论:(0)  加入收藏
站内最新
站内热门
站内头条