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

使用场景

目前团队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. AutoDarkMode:Win上自动切换深浅模式的工具

    AutoDarkMode是一款Windows上用于根据时间自动切换亮暗主题的工具. 打开后,即可设置根据时间(通常是白天亮晚上暗)自动切换主题(需要软件开机启动). 你也可以在切换颜色主题的同时设置两 ...

  2. Java新特性-stream流

    Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据. Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达 ...

  3. CSS动画(炫酷表单)

    1.整体效果 https://mmbiz.qpic.cn/sz_mmbiz_gif/EGZdlrTDJa6yORMSqiaEKgpwibBgfcTQZNV0pI3M8t8HQm5XliaicSO42e ...

  4. 微软nuget国内源

    https://www.cnblogs.com/Leo_wl/p/16328650.html 为解决国内访问NuGet服务器速度不稳定的问题 ,这里推荐使用NuGet微软官方中国国内镜像 地址:htt ...

  5. BootStrap5应用时tooltips的添加

    BootStrap5应用时tooltips的添加 官方示例 <button type="button" class="btn btn-secondary" ...

  6. FFmpeg 视频转 GIF

    Filtergraph 在 ffmpeg 命令中,可以使用 -filter.-vf.-af 或 -filter_complex 选项指定 filter graph Filtergraph 由 filt ...

  7. Andrew 算法求凸包

    Andrew 算法求凸包 参考资料: 右手定则(baidu.com) 内积和外积 - OI Wiki (oi-wiki.org) \(a\) 与 \(b\) 相对位置 \(b\) 在 \(a\) 的逆 ...

  8. 0基础读顶会论文—流程即服务(PraaS):通过无服务器流程统一弹性云和有状态云

    Abstract 细粒度的无服务器函数为许多新应用提供了动力,这些应用受益于弹性扩展和按需付费计费模型,同时将基础设施管理开销降至最低.为了实现这些特性,函数即服务(FaaS)平台将计算和状态分离,P ...

  9. dotnet学习笔记-专题06-过滤器和中间件-01

    1. 基本概念 在ASP.NET Core中,中间件和过滤器都是处理HTTP请求的重要组件,但它们在应用中的位置.作用范围以及使用方式有所不同. 1.1 中间件和过滤器的区别 1.1.1 中间件 位置 ...

  10. 理解Flink之四State

    在Flink的官网写着:Stateful Computations over Data Streams. 基于状态计算的数据流. 在流式计算中,希望做一些聚合分析等.那么就需要保存当前日志的状态,以备 ...