前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >AI 辅助编码的开发者体验演进:Less Chat 到 More Auto,再到 Easy Verify

AI 辅助编码的开发者体验演进:Less Chat 到 More Auto,再到 Easy Verify

作者头像
Phodal
发布2024-06-06 19:33:47
1490
发布2024-06-06 19:33:47
举报
文章被收录于专栏:phodal

本来不想写一篇吐槽国内开发工具的文章,但是考虑到最近 Replit 的裁员动作,以及其他 AI 辅助研发工具的发展。我还是想从开发者体验的角度来谈谈 AI 辅助研发工具的开发者体验。尽管大部分开发者都没有工具上的决策权或购买权,但我仍然想写一篇关于这个话题的文章。

我们对于此的新理解:https://mpvideo.qpic.cn/0bc334aacaaau4agml2zzjtfbx6dahpqaaia.f10002.mp4?

不比云厂商的大规模团队团队,我们主要依赖于业余时间与一些工作的空闲编写 AutoDev 这样一个开源 AI 驱动编程工具。所以,我们在设计时往往更偏向于 让自己用得开心为主。这也是我们一直强调:将规范、实践、软件知识工程融合到 AI 编程工具,它才是真正提升自己效率的办法。

AI 编程工具的三个成熟度阶段

当我们定义 AI 编程工具时,我所定义的是围绕开发者日常活动的所有工具,它会包含:代码补全、代码理解、代码重构、代码测试、代码提交等等。也就是说, AI 编程工具是一个全方位的工具,它会涵盖开发者日常的所有活动。

从个人的实践与使用角度来说,我会将 AI 编程工具的成熟度分为三个阶段:

  • 聊天为主。即由于工具缺乏上下文的理解,诸多的活动需要通过 Chat 的方式来进行。
  • 完全自动生成。即工具已经具备了一定的上下文理解能力,可以自动化完成大部分的活动。
  • 自动校验与执行,即工具能自动帮你完成大部分的活动,并提供轻量级的校验机制。

取决于不同人的理解和场景的不同,所要构建的能力与工具也是不同的。

阶段演进 1:从聊天到自动生成

如果你用过市面上主流的编码工具,我相信你一定厌倦了 点击-> 生成测试-> 复制 -> 粘贴 -> 运行测试 这样的流程,然后你发现因为测试框架 不正确,所以你生成的测试完全不可用。诸如于,国内最流行的工具之一便需要你如此的操作

这样的操作,不仅仅是低效,而且还会让你产生一个感受:有这时间,我都写完了。所以,我们在设计 AutoDev 时,我们希望能够将这样的操作自动化, 只需要点击一下生成测试,AI 与 IDE 便自动帮你生成测试代码。在特殊的场景下,结合我们自定义的一些测试规范与测试模板,以大大提高测试生成的质量。

聊天只应该是辅助诊断的方式,而不应该是主要的交互方式。诸如于让开发人员判断 AI 的 输入和输出是否正确,而非让开发人员去手动操作。

阶段演进 2:从自动生成到自动校验与执行

我们设计 AutoDev 的想法是来源于 AutoCRUD + LLM 场景的探索,即在固定分层结构的代码库、编程规范中,代码是完全可以由 AI 自动生成的。但是, 在去年经过大量的实践后发现,我们需要大量的校验成本,以确保代码是能运行的。

同样的,对于其它编码场景来说,我们也需要自动校验 AI 生成的是否合理。结合不同的场景,就需要结合不同的工具和方式:

  • 对于代码生成,我们需要结合 Lint 工具,来确保代码的规范性。
  • 对于测试生成,我们需要结合测试框架、覆盖率与测试坏味道工具,来确保测试的质量。
  • 对于提交信息生成,我们需要结合提交信息规范,来检验提交信息的质量。
  • 对于重构来说,我们还需要自动执行重构建议,以避免重构后的依赖出现问题。

基于上述的想法,我们进一步优化了 AutoDev 的诸多项能力,以提供更好的开发者体验。

AutoDev 1.8.6 的新自动化能力

在新版本的 AutoDev 中,我们融合了我们对于 AI 辅助编码的新理解。

自动执行 AI 重构代码:从一无所知到勉强可用

当你使用 AI 重构时,会发现因为 AI 做了重命名等操作,没有修改 ref 导致代码无法运行。因此,你无法直接应用 AI 的重构建议。基于此, 我们优化了 DevIns AI Agent 语言,使得你可以直接执行重构代码:

代码语言:javascript
复制
/refactor:rename crtBlog to CreateBlog

它使得你可以直接执行重构代码,而不需要手动修改代码。

详细见:https://ide.unitmesh.cc/devins/quick-start.html

API 测试执行

在先前的版本中,我们提供了 API 测试生成的能力,但是你需要手动执行测试。在新版本中,我们提供了 API 测试执行的能力,以自动执行测试。我们引入了 Intellij IDEA 提供的测试执行能力,以支持 API 测试的自动执行。

即,我们会生成直接可运行的测试 DSL,方便你直接对代码进行测试。

自动测试修复与执行

在新版本中,我们引入了自动测试修复与执行的能力,以支持你的测试修复与执行。即,我们会根据测试结果,自动修复测试代码,并执行测试。诸如于,AI 生成的 代码可能会有一些问题,我们会根据情况进行自动修复。

并在没有错误之后,自动执行测试。

批量测试生成

在我们的测试生成能力足够强大后,我们引入了批量测试生成的能力,以支持你的批量测试生成:

只需要在文件或者目录上点击生成测试,AutoDev 会自动为你生成 对应的测试代码。

批量 Prompt

当你需要对多个文件进行操作时,我们引入了批量 Prompt 的能力,以支持你的批量 Prompt:

诸如于,你可能需要批量迁移 Vue2 到 Vue3 代码,只需要 配置好对应的规则,我们便可以为你自动迁移。

代码语言:javascript
复制
---
interaction: ReplaceCurrentFile
batchFileRegex: "**/*.vue"
codeOnly: true
---

xxx

详细见:https://ide.unitmesh.cc/custom/batch

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-05-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 phodal 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • AI 编程工具的三个成熟度阶段
    • 阶段演进 1:从聊天到自动生成
      • 阶段演进 2:从自动生成到自动校验与执行
      • AutoDev 1.8.6 的新自动化能力
        • 自动执行 AI 重构代码:从一无所知到勉强可用
          • API 测试执行
            • 自动测试修复与执行
              • 批量测试生成
                • 批量 Prompt
                相关产品与服务
                腾讯云服务器利旧
                云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档