写点什么

AI 辅助开发比人工编写代码快 180 多倍,程序员是喜还是忧?

  • 2019-12-05
  • 本文字数:2234 字

    阅读完需:约 7 分钟

AI辅助开发比人工编写代码快180多倍,程序员是喜还是忧?

程序员坐稳了,AI 开始抢你们的“饭碗”了。


如今,开发人员的准入门槛比以往任何时候都要高。重复性的任务占据了软件开发的大部分时间,并且很容易出错。市场上软件开发人才短缺,团队超负荷工作,许多企业既无法完全掌握现有的日益复杂的代码,又追不上新程序开发日新月异的发展步伐。


对于人工智能爱好者来说,推测人工智能如何改进软件开发是件令人兴奋的事儿。人工智能能否在几天之内创建好原型框架而不用耗时几个月甚至几年?它会教人类开发人员如何更好地编写代码吗?人工智能的研究范围很广,计算机编程的灵活性基本上也是无边界的,所以很难想象当智能程序可以帮助人类与代码交互时,软件开发会是什么样子。



但许多开发人员和技术经理没有意识到的是,在过去短短几年里,人工智能对开发团队的重要性就已经产生了质的飞跃。其实,目前我们已经走到了人工智能辅助软件开发的初级阶段。

AI 在自动化领域不可或缺

所有的软件开发组织都追求高效、敏捷开发,自动化技术已经能实现大规模敏捷开发。过去十年,在进行自动化测试时,一旦代码发生变化,开发人员能够立即做出反馈,同时进行相应的调整,因此软件质量有了很大提升。自动化软件流水线利用机器人助手来生成 Pull Request 请求,从而保证更新的持续交付。


但是许多已经运用了这项技术的公司发现,仅依靠自动化是不够的。自动化过程仍然存在瓶颈,大多数问题出现在新代码的创建上。例如,自动化可以快速完成成百上千个单元测试,如果开发团队自己来编写这些测试,则需要几个小时甚至几周。但是如果这些提交没有经过测试验证,那么自动化的流水线就会产生垃圾。尽管会打破原本自动化的过程,但在添加新代码(和新测试)时,还是需要进行人工操作。

人工智能编码技术

好消息是,通过自动编写验证自动化流水线其余部分的测试代码,现有的人工智能代码技术已经可以一次性解决掉这两个问题。这样的任务过去需要耗费开发人员很多时间,妨碍了他们去做创建新功能等这种更有价值的工作。在单元测试中使用人工智能让自动化更加完善,尽管这个过程并不容易。



正如曾经预期的那样,人工智能创建的测试与人类编写的测试存在差异。但这些测试能在很短的时间内生成,而且功能也算合格。如果不能做到比人类编写的代码更好,那就要保证出现问题时代码能很容易地被修复。正如 Martin Fowler 在他 2006 年《论持续集成》一文中所总结的那样:“频繁地运行不完美的测试,比完全不写的完美测试要强得多。”


利用人工智能帮助开发者编写代码,让开发人员和 IT 经理不再被时间、成本和工作质量无法权衡的问题而困扰。不少开发人员在最初进行软件开发时都颇具创造力,但是大量的重复性的工作消磨掉了他们原本的创造力。人工智能辅助开发不仅能让开发人员在不牺牲质量的情况下更快、更经济地创建新产品,也能帮助他们快速地完成重复性任务,把注意力回归到创造性任务中,让他们在工作中更有获得感。

落地是关键

像金融业这些高度重视代码质量的行业,也已经开始使用人工智能辅助软件开发。例如,为提高软件开发效率,高盛(Goldman Sachs)最近已经开始使用人工智能编写代码。他们利用 AI 工具为一个遗留的应用程序编写了 3000 多个单元测试和 1.5 万多行代码,在几个小时内就创建了一个完整的测试套件。与人工编写测试每个平均耗时 30 分钟相比,AI 工具能以超过 180 倍的速度编写测试。总的来说,银行利用这项技术节省了一年多的开发时间。


微软也曾开源Sketch2Code,利用人工智能辅助技术帮助设计师和工程师将手绘的用户界面草图转换为可用的 HTML 代码。设计师和工程师们在设计上达成一致意见后,会将草图拍摄下来,然后手动将草图翻译成 HTML 代码,这个翻译过程耗时耗力,还会拖慢整个设计过程。因此,开发人员设想如果将白纸上手绘的这些设计草图立即反映在浏览器中会怎样呢?结果是设计师们在头脑风暴结束后,立即可以拥有一个已经由设计师、开发人员甚至客户验证过的现成原型,这样可以为网站和应用程序开发省去不少时间,因此也就有了 Sketch2Code 的诞生。



利用 Sketch2Code 将手绘草图转换成代码的操作过程


Facebook 在这方面也不甘落后,早在去年公司就开发了一款名为 Getafix 的工具,可以自动查找出 bug 的修复方案,并提供给工程师审批,这极大提高了工程师的工作效率和整体代码质量 Getafix 不仅能够为工程师提供直观的修复方案,还能利用更强大的聚类算法,分析问题代码的上下文找到更合适的修复方案。这款 AI 辅助bug修复软件——Getafix 已经被部署到拥有数十亿用户的 Facebook 的生产环境中,大大提升了应用程序的稳定性。


人工智能辅助开发未来可期

值得一提的是,目前人工智能辅助开发还停留在非常初级的阶段,只能辅助开发人员编码和进行自动测试,无法实现大规模工业化应用,复杂和高难度的编程还要依靠人类开发人员。但我们依然需要这样的 AI 辅助技术帮助开发人员抗下那些基础性的“粗活累活”,让他们有更多时间和精力完成更加复杂的开发。


随着人工智能技术的不断进步以及成功应用在更多案例中,各个行业未来都将加大人工智能在软件开发方面的投入。全球科技巨头们跃跃欲试开源各种 AI 辅助开发工具,可见,他们想要在这项技术领域中分一杯羹的野心昭然若揭。为了在竞争中保持优势并扩大规模,市场主体还需要将提高效率的新工具集成到开发过程中。与此同时,人工智能辅助软件开发技术正在完成首次迭代更新,也让我们初步了解了未来编码技术将如何发展。


原文链接:


https://artificialintelligence-news.com/2019/11/25/opinion-ai-software-development-here/


2019-12-05 09:4610230

评论 4 条评论

发布
用户头像
此文中的AI 是说 计算机编写的软件。 和我们理解的AI 不是一回事。我写个脚本 可以帮助我提高生产力,也算AI咯??
2019-12-25 15:18
回复
用户头像
有方向就有未来
2019-12-21 17:02
回复
用户头像
没有10年的自动化测试经验还用AI写测试? 骗VC钱呢吗?
2019-12-18 10:01
回复
用户头像
这条路还远着呢
2019-12-05 14:00
回复
没有更多了
发现更多内容

关于列表转字符串这个过程的曲折

ベ布小禅

4月日更

taskwarrior ,一款提升效率的命令行的 TODO list 工具

Red

效率工具 TODO linux操作

「架构师训练营 4 期」大作业二

凯迪

架构师训练营 4 期

重读《重构2》

顿晓

重构 4月日更

架构师训练营 4 期 大作业

引花眠

架构师训练营 4 期

Seldon 使用 (二):打包模型

托内多

tensorflow kubeflow Kubernetes PyTorch seldon

手撕83K STAR的Axios设计思想,并进行能力增强

梁龙先森

源码分析 大前端 axios

GitHub已爆火的Java突击手册,全面详细对标P7岗!真的很全面

比伯

Java 编程 架构 程序人生 计算机

计算机原理学习笔记 Day2

穿过生命散发芬芳

计算机原理 4月日更

Java 并发基础(五):面试实战之多线程顺序打印

看山

Java并发

陪伴

小天同学

陪伴 育儿 个人感悟 4月日更

吃透Nginx编译安装过程

书旅

nginx

Python OpenCV 图片高斯模糊

梦想橡皮擦

Python OpenCV 4月日更

深入剖析 | JVM-Sandbox核心源码

九叔(高翔龙)

JVM 中间件 类加载 Sandbox 类隔离

并发容器与并发控制 - JUC

学Java关注我

Java 编程 程序员 架构 计算机

「架构师训练营 4 期」大作业一&二

凯迪

架构师训练营 4 期

浅析LSM-Tree存储模型

正向成长

LSM树 KV存储引擎

安卓开发基础面试题,分享一点面试小经验,含BATJM大厂

欢喜学安卓

android 程序员 面试 移动开发

Dubbo 学习笔记(二) Spring Boot 整合 Dubbo

U+2647

Spring Boot dubbo 4月日更

树莓派人表情识别

IT蜗壳-Tango

IT蜗壳教学 4月日更

继续探究:一文理清JVM和GC(下)

比伯

Java 架构 程序人生 计算机 技术宅

再谈日更公众号

彭宏豪95

写作 感悟 微信公众号 4月日更

Docker 环境清理的常用方法

xcbeyond

Docker 4月日更

PI的一种简写。

山@支

华仔架构实战营 - 作业 - 模块2

曲元洪

架构实战营

翻译:《实用的Python编程》08_03_Debugging

codists

Python

hive的数据存储格式

大数据技术指南

hive 4月日更

猫鼠游戏,一个刷票老千看在线投票项目的防范与取舍

ucsheep

安全 在线投票 防作弊 刷票

安卓开发实战讲解!从新手到Flutter架构师,一篇就够!快来收藏!

欢喜学安卓

android 程序员 面试 移动开发

算法训练营 - 学习笔记 - 第二周

心在飞

嘉云公司研发效能平台实践

小江

研发效能 CI/CD

AI辅助开发比人工编写代码快180多倍,程序员是喜还是忧?_AI_Matthew Lodge_InfoQ精选文章