在过去一年投入人工智能辅助开发之后,虽然大家说使用了人工智能之后工作效率显着提高,但我们日常使用的实际软件似乎并没有明显改善。所以问题出现在哪里?

使用场景

目前团队AI使用主要在以下方面:

  • 代码补全和建议
  • 执行复杂的重构任务
  • 生成测试和文档
  • 作为“结对程序员”来解决问题
  • 从设计或粗略概念开始
  • 使用AI生成完整的初始代码库
  • 只需数小时或数天而不是数周即可获得工作原型
  • 专注于快速验证和迭代

但我们发现AI大概只能解决80%的编码,最后 20%——使软件可用于生产、可维护且健壮的部分仍然需要真正的工程知识。

随着工具的改进,这种差距可能会缩小。但就目前而言,最务实的做法是利用人工智能来加速学习,而不是完全取代它。

总结下来主要用途是

  • 为经验丰富的开发人员提供原型加速器
  • 为那些致力于理解发展的人提供的学习辅助工具
  • 用于快速验证想法的 MVP 生成器

现有缺陷

大语言模型很容易轻信,它会照单全收你告诉它的一切。这就暴露出一个关键问题:如果一个决策辅助系统连真假都分不清,它还能发挥多大作用?无论是旅行顾问、生活助手,还是研究工具,都会因为这个缺陷而大打折扣。最近就有一个现成的例子:谷歌搜索闹了个大乌龙,它把粉丝创作网站上一个虚构的《魔法满屋 2》剧情,当成了真实电影来介绍。

使用 Cursor 或 Copilot 等人工智能工具工作时,可以在几分钟内构建整个功能,并完成测试和文档。但我们需要不断地添加处理 AI 遗漏的边缘情况、 质疑架构决策、添加全面的错误处理。换句话说,我们需要运用多年来之不易的工程智慧来塑造和限制人工智能的输出。人工智能正在加速其实施,但我们的专业知识使代码保持可维护性。初级工程师经常会错过这些关键步骤。他们更容易接受人工智能的输出,从而产生了“纸牌屋代码”——它看起来很完整,但在现实世界的压力下崩溃了。

所以出现了一个知识悖论,人工智能工具比初学者更能帮助经验丰富的开发人员。人工智能就像你的团队中有一个非常热心的初级开发人员。他们可以快速编写代码,但需要不断的监督和纠正。你知道的越多,就越能指导他们。

这就产生了我所说的“知识悖论”:

  • 有经验的人使用AI来加速他们已经知道如何做的事情
  • 初学者尝试使用AI来学习该做什么,但初学者并不知道AI提供内容的正确性,如果出现问题也是依赖AI解决,陷入了依赖循环

所以现阶段我们应该通过以下方式去使用AI辅助编程

  • 使用 AI 进行快速原型设计
  • 花时间了解生成的代码是如何工作的
  • 学习基本的编程概念以及人工智能的使用
  • 逐步打好知识基础
  • 使用人工智能作为学习工具,而不仅仅是代码生成器

总结

我从使用这些工具中获得的关键是,未来并不是人工智能取代开发人员,而是人工智能成为能力越来越强的合作者,可以采取主动,同时仍然尊重人类的指导和专业知识。人工智能并没有让我们的软件显着变得更好,因为软件质量也许从来都不是主要受到编码速度的限制。软件开发的困难部分——理解需求、设计可维护的系统、处理边缘情况、确保安全性和性能仍然需要人类的判断。

人工智能所做的就是让我们更快地进行迭代和实验,从而有可能通过更快速的探索找到更好的解决方案。但前提是我们保持我们的工程质量并使用人工智能作为工具,而不是良好软件实践的替代品。请记住:目标不是更快地编写更多代码。这是为了构建更好的软件。如果使用得当,人工智能可以帮助我们做到这一点。但我们仍然需要了解“更好”的含义以及如何实现它。

尽管面临这些挑战,我对人工智能在软件开发中的作用持乐观态度。关键是要了解它的真正用途:

  • 加速已知,人工智能擅长帮助我们实现我们已经理解的模式。这就像有一个无限耐心、打字速度非常快的结对程序员。
  • 探索可能性,人工智能非常适合快速构建想法原型并探索不同的方法。这就像有一个沙箱,我们可以在其中快速测试概念。
  • 自动化例程,人工智能极大地减少了花在样板文件和日常编码任务上的时间,让我们能够专注于有趣的问题。

AI对开发过程的替代性的更多相关文章

  1. 俞敏洪:未来教育是互联网+ AI +区块链联合颠覆

    “我对面向未来教育领域,内心是有一丝悲哀的.至少在我思考和理解的范围内,互联网和 AI 是不是有可能彻底的改变中国教育现状?我没有想清楚.”10 月 31 日,在鲸媒体举办的以“教育 +AI”为的主题 ...

  2. 谷歌AI中国中心成立,人工智能势不可挡?

    昨日,谷歌在上海举办了一年一度的Google中国开发者大会.在本届大会上,谷歌云首席科学家李飞飞宣布了一个重磅消息,即在北京将成立谷歌AI中国中心.对于这个即将成立的AI中心谷歌寄予厚望,希望与中国本 ...

  3. 谷歌 AI 中国中心成立,人工智能势不可挡?

    昨日,谷歌在上海举办了一年一度的Google中国开发者大会.在本届大会上,谷歌云首席科学家李飞飞宣布了一个重磅消息,即在北京将成立谷歌AI中国中心.对于这个即将成立的AI中心谷歌寄予厚望,希望与中国本 ...

  4. AI芯片

    课程作业,正好自己也在学深度学习,正好有所帮助,做了深度学习的AI芯片调研,时间比较短,写的比较仓促,大家随便看看 近年来,深度学习技术,如卷积神经网络(CNN).递归神经网络(RNN)等,成为计算机 ...

  5. 博客与AI

    最近AI自动生成技术文章和答案在圈子里面引起了很大轰动,Stack Overflow暂时拒绝接收GPT生成的结果.我也经常性地浏览或者编写博客,但是最近我使用new bing或者ChatGPT的过程中 ...

  6. 花十分钟,让你变成AI产品经理

    花十分钟,让你变成AI产品经理 https://www.jianshu.com/p/eba6a1ca98a4 先说一下你阅读本文可以得到什么.你能得到AI的理论知识框架:你能学习到如何成为一个AI产品 ...

  7. 人工智能AI芯片与Maker创意接轨 (中)

    在人工智能AI芯片与Maker创意接轨(上)这篇文章中,介绍人工智能与深度学习,以及深度学习技术的应用,了解内部真实的作业原理,让我们能够跟上这波AI新浪潮.系列文来到了中篇,将详细介绍目前市面上的各 ...

  8. 基于保守性和规则性的预测方法SIFT和PolyPhen

    有什么特征可以帮助我们来区分导致功能和表型变化的变异和其他变异,然后我们如何综合特征来做出一个预测模型? 表型或功能的改变(phenotypical/functional effect)a,个体表型上 ...

  9. 课程报名 | 基于模型训练平台快速打造 AI 能力

    我们常说的 AI 通用能力往往不针对具体的行业应用,而是主要解决日常或者泛化的问题,很多技术企业给出的方案是通用式的,比如通用文字识别,无论识别身份证.驾驶证.行驶证等,任何一张图片训练后的模型都会尽 ...

  10. 如何消灭飞机的“黑色十分钟”,AI来帮忙

    近年来,“AI的应用和落地”逐渐成了具化的关键词,它和很多事物很多行业结合在一起,形成了奇妙的“化学反应”.例如,在日常生活中,AI可以推送我们喜欢的新闻或视频,可以在拍照的时候识别场景提升照片的美感 ...

随机推荐

  1. OOP七大原则

    OOP七大原则 开闭原则 抽象约束.封装变化.对扩展开放,对修改关闭. 通过"抽象约束.封装变化"来实现开闭原则,即通过接口或者抽象类为软件实体定义一个相对稳定的抽象层,而将相同的 ...

  2. @RequestBody注解转对象中驼峰格式的参数无法接收到数据的问题解决方法

    1.问题:驼峰格式的参数传递到后端,@RequestBody注解标注的实体对象参数没有接收到对应的数据 前端传参:执行结果:请求参数实体: import lombok.Data; /** * 请求参数 ...

  3. chrome浏览器自定义安装方法

    chrome浏览器有很多比较好的方面,也是很多人首选的浏览器.对于想自定义安装chrome浏览器的小伙伴来说,关于chrome浏览器默认安装到C盘让人很无奈.网上有说直接将C盘的文件夹放到想安装的文件 ...

  4. 一文彻底弄懂JUC工具包的Semaphore

    Semaphore 是 Java 并发包 (java.util.concurrent) 中的重要工具,主要用于控制多线程对共享资源的并发访问量.它可以设置"许可证"(permit) ...

  5. 题解:P6672 [清华集训2016] 你的生命已如风中残烛

    题解:P6672 [清华集训2016] 你的生命已如风中残烛 标签 组合数学 分析 首先引入一个引理. Raney 引理 对于一个长度为 \(n\) 的序列 \(a\),如果 \(\sum\limit ...

  6. dotnet core微服务框架Jimu ~ 浏览和发布新闻微服务

    提供新闻浏览和发布服务 有 3 个需要授权公开的 api: GetAllNews 获取所有新闻 PostNews 发布新闻, 具有 admin 角色的会员才能发布新闻 GetNews 根据 id 获取 ...

  7. java公式解析器学习与开发(1)

    public class Evaluate { public static void main(String[] args) { Stack<String> ops = new Stack ...

  8. 新型大语言模型的预训练与后训练范式,谷歌的Gemma 2语言模型

    前言:大型语言模型(LLMs)的发展历程可以说是非常长,从早期的GPT模型一路走到了今天这些复杂的.公开权重的大型语言模型.最初,LLM的训练过程只关注预训练,但后来逐步扩展到了包括预训练和后训练在内 ...

  9. SQL Server数据表模糊查询(like用法)详解

    在SQL Server Management Studio (SSMS) 中,进行模糊查询主要是通过使用like操作符来实现的.like操作符用于在where语句中搜索列中具有指定模式的数据.我们在简 ...

  10. http请求超时, 底层发生了什么?

    业务方反应调用接口超时,但是在服务端监控并没有看到5xx异常, 于是我们模拟一下请求超时时发生了什么? 1.openresty模拟长耗时服务端 延迟5s响应 error_log logs/error. ...