AI对开发过程的替代性
在过去一年投入人工智能辅助开发之后,虽然大家说使用了人工智能之后工作效率显着提高,但我们日常使用的实际软件似乎并没有明显改善。所以问题出现在哪里?
使用场景
目前团队AI使用主要在以下方面:
- 代码补全和建议
- 执行复杂的重构任务
- 生成测试和文档
- 作为“结对程序员”来解决问题
- 从设计或粗略概念开始
- 使用AI生成完整的初始代码库
- 只需数小时或数天而不是数周即可获得工作原型
- 专注于快速验证和迭代
但我们发现AI大概只能解决80%的编码,最后 20%——使软件可用于生产、可维护且健壮的部分仍然需要真正的工程知识。
随着工具的改进,这种差距可能会缩小。但就目前而言,最务实的做法是利用人工智能来加速学习,而不是完全取代它。
总结下来主要用途是
- 为经验丰富的开发人员提供原型加速器
- 为那些致力于理解发展的人提供的学习辅助工具
- 用于快速验证想法的 MVP 生成器
现有缺陷
大语言模型很容易轻信,它会照单全收你告诉它的一切。这就暴露出一个关键问题:如果一个决策辅助系统连真假都分不清,它还能发挥多大作用?无论是旅行顾问、生活助手,还是研究工具,都会因为这个缺陷而大打折扣。最近就有一个现成的例子:谷歌搜索闹了个大乌龙,它把粉丝创作网站上一个虚构的《魔法满屋 2》剧情,当成了真实电影来介绍。
使用 Cursor 或 Copilot 等人工智能工具工作时,可以在几分钟内构建整个功能,并完成测试和文档。但我们需要不断地添加处理 AI 遗漏的边缘情况、 质疑架构决策、添加全面的错误处理。换句话说,我们需要运用多年来之不易的工程智慧来塑造和限制人工智能的输出。人工智能正在加速其实施,但我们的专业知识使代码保持可维护性。初级工程师经常会错过这些关键步骤。他们更容易接受人工智能的输出,从而产生了“纸牌屋代码”——它看起来很完整,但在现实世界的压力下崩溃了。
所以出现了一个知识悖论,人工智能工具比初学者更能帮助经验丰富的开发人员。人工智能就像你的团队中有一个非常热心的初级开发人员。他们可以快速编写代码,但需要不断的监督和纠正。你知道的越多,就越能指导他们。
这就产生了我所说的“知识悖论”:
- 有经验的人使用AI来加速他们已经知道如何做的事情
- 初学者尝试使用AI来学习该做什么,但初学者并不知道AI提供内容的正确性,如果出现问题也是依赖AI解决,陷入了依赖循环
所以现阶段我们应该通过以下方式去使用AI辅助编程
- 使用 AI 进行快速原型设计
- 花时间了解生成的代码是如何工作的
- 学习基本的编程概念以及人工智能的使用
- 逐步打好知识基础
- 使用人工智能作为学习工具,而不仅仅是代码生成器
总结
我从使用这些工具中获得的关键是,未来并不是人工智能取代开发人员,而是人工智能成为能力越来越强的合作者,可以采取主动,同时仍然尊重人类的指导和专业知识。人工智能并没有让我们的软件显着变得更好,因为软件质量也许从来都不是主要受到编码速度的限制。软件开发的困难部分——理解需求、设计可维护的系统、处理边缘情况、确保安全性和性能仍然需要人类的判断。
人工智能所做的就是让我们更快地进行迭代和实验,从而有可能通过更快速的探索找到更好的解决方案。但前提是我们保持我们的工程质量并使用人工智能作为工具,而不是良好软件实践的替代品。请记住:目标不是更快地编写更多代码。这是为了构建更好的软件。如果使用得当,人工智能可以帮助我们做到这一点。但我们仍然需要了解“更好”的含义以及如何实现它。
尽管面临这些挑战,我对人工智能在软件开发中的作用持乐观态度。关键是要了解它的真正用途:
- 加速已知,人工智能擅长帮助我们实现我们已经理解的模式。这就像有一个无限耐心、打字速度非常快的结对程序员。
- 探索可能性,人工智能非常适合快速构建想法原型并探索不同的方法。这就像有一个沙箱,我们可以在其中快速测试概念。
- 自动化例程,人工智能极大地减少了花在样板文件和日常编码任务上的时间,让我们能够专注于有趣的问题。
AI对开发过程的替代性的更多相关文章
- 俞敏洪:未来教育是互联网+ AI +区块链联合颠覆
“我对面向未来教育领域,内心是有一丝悲哀的.至少在我思考和理解的范围内,互联网和 AI 是不是有可能彻底的改变中国教育现状?我没有想清楚.”10 月 31 日,在鲸媒体举办的以“教育 +AI”为的主题 ...
- 谷歌AI中国中心成立,人工智能势不可挡?
昨日,谷歌在上海举办了一年一度的Google中国开发者大会.在本届大会上,谷歌云首席科学家李飞飞宣布了一个重磅消息,即在北京将成立谷歌AI中国中心.对于这个即将成立的AI中心谷歌寄予厚望,希望与中国本 ...
- 谷歌 AI 中国中心成立,人工智能势不可挡?
昨日,谷歌在上海举办了一年一度的Google中国开发者大会.在本届大会上,谷歌云首席科学家李飞飞宣布了一个重磅消息,即在北京将成立谷歌AI中国中心.对于这个即将成立的AI中心谷歌寄予厚望,希望与中国本 ...
- AI芯片
课程作业,正好自己也在学深度学习,正好有所帮助,做了深度学习的AI芯片调研,时间比较短,写的比较仓促,大家随便看看 近年来,深度学习技术,如卷积神经网络(CNN).递归神经网络(RNN)等,成为计算机 ...
- 博客与AI
最近AI自动生成技术文章和答案在圈子里面引起了很大轰动,Stack Overflow暂时拒绝接收GPT生成的结果.我也经常性地浏览或者编写博客,但是最近我使用new bing或者ChatGPT的过程中 ...
- 花十分钟,让你变成AI产品经理
花十分钟,让你变成AI产品经理 https://www.jianshu.com/p/eba6a1ca98a4 先说一下你阅读本文可以得到什么.你能得到AI的理论知识框架:你能学习到如何成为一个AI产品 ...
- 人工智能AI芯片与Maker创意接轨 (中)
在人工智能AI芯片与Maker创意接轨(上)这篇文章中,介绍人工智能与深度学习,以及深度学习技术的应用,了解内部真实的作业原理,让我们能够跟上这波AI新浪潮.系列文来到了中篇,将详细介绍目前市面上的各 ...
- 基于保守性和规则性的预测方法SIFT和PolyPhen
有什么特征可以帮助我们来区分导致功能和表型变化的变异和其他变异,然后我们如何综合特征来做出一个预测模型? 表型或功能的改变(phenotypical/functional effect)a,个体表型上 ...
- 课程报名 | 基于模型训练平台快速打造 AI 能力
我们常说的 AI 通用能力往往不针对具体的行业应用,而是主要解决日常或者泛化的问题,很多技术企业给出的方案是通用式的,比如通用文字识别,无论识别身份证.驾驶证.行驶证等,任何一张图片训练后的模型都会尽 ...
- 如何消灭飞机的“黑色十分钟”,AI来帮忙
近年来,“AI的应用和落地”逐渐成了具化的关键词,它和很多事物很多行业结合在一起,形成了奇妙的“化学反应”.例如,在日常生活中,AI可以推送我们喜欢的新闻或视频,可以在拍照的时候识别场景提升照片的美感 ...
随机推荐
- linux 基础(3)基本文件操作
目录的基本操作 在 linux 文件系统里,以斜杠 / 开头的路径是绝对路径,从根目录开始寻找:其他的路径则都是相对路径,从当前目录(working directory)开始寻找. 相对目录中常用的符 ...
- C++ 命令行传参 参数使用 坐标参数的转换
目录 1. 什么是命令行传参 2. 如何传参 3. 应用实例 4. 问题 1. 什么是命令行传参 命令行传参就是在 cmd 命令提示符, 或者 Linux shell 中使用可执行程序时, 可以添加 ...
- SpringBoot入门到精通(十三)日志:别小看它,否则吃亏的是自己!学会你也可以设计架构
别小看他,当你面对的时候,就会知道,多么痛的领悟! 如何在 Spring Boot 中使用 Logback 记录详细的日志? 整合LogBack,Log4J...等,是不是很多方法!但需要注意,我讲的 ...
- NPM 包开发与优化全面指南
前言 Hey, 我是 Immerse 系列文章首发于[Immerse],更多内容请关注该网站 转载说明:转载请注明原文出处及版权声明! 1. 理解 NPM 包的结构 1.1 package.json ...
- DRF-Serializers序列化器组件源码分析及改编
1. 源码分析 注意:以下代码片段为方便理解已进行简化,只保留了与序列化功能相关的代码 序列化的源码中涉及到了元类的概念,我在这里简单说明一下:元类(metaclass)是一个高级概念,用于定义类的创 ...
- openresty操作mongodb
最近项目中使用openresty,需要通过openresty连接mongo,经过几番折腾终于有了一个结果,现将其记录下来,也感谢模块提供者 使用openresty操作mongo 1.引入第三方的模块 ...
- openEuler搭建k8s(1.28.2版本)
目录 k8s搭建(1.28.2版本) 1. 安装containerd 1.1 下载tar包 1.2 编写服务单元文件 2. 安装runc 3. 安装cni插件 3.1 下载文件 3.2 设置crict ...
- CAD Plus 使用帮助
English help 移动端使用帮助 文档更新日期: 2023-07-28; 这篇文章将介绍如何使用CAD Plus app; 如果您有疑问或需要帮助请发送邮件至 3167292926@qq.co ...
- http: server gave HTTP response to HTTPS client
出现这问题的原因是:Docker自从1.3.X之后docker registry交互默认使用的是HTTPS,但是搭建私有镜像默认使用的是HTTP服务,所以与私有镜像交时出现以上错误. 这个报错是在本地 ...
- golang之copier
今天我们要介绍的copier库就能处理不同类型之间的赋值.除此之外,copier还能: 调用同名方法为字段赋值: 以源对象字段为参数调用目标对象的方法,从而为目标对象赋值(当然也可以做其它的任何事情) ...