Q16|无界融合:AI怎样融入日常编程工作流程?

作者介绍:
姜天意,网易低代码业务中心技术负责人
段潇涵,字节跳动豆包 MarsCode IDE 架构师

Q:如何让 AI 真正融入到日常编程工作流程中?比如,在团队协作、 Code Review、版本控制、DevOps 流水线当中,AI 是如何融入进来;做 Prompt 工程、代码审计、测试环节时,是否会额外制定规范?

姜天意:在正常的业务开发中使用 Copilot 不用过多赘述,大家都在用。除此之外,我还有一些实践经验。首先,在进行测试时,我们尝试将 AI 接入,效果还不错。还有 AI 审查和 AI 扫描,早期的过程中,我们使用像 SonarQube 这样的工具进行扫描,这个过程相对繁琐,因为这些扫描工具会检测出很多 code style 问题,但意义不大。后来,我们接入了 AI 审查的能力,它将 M2DIFF 内容和原始文件交给大模型,然后生成一些非常有价值的建议,比如函数命名规范、哪些函数可以封装,或者某些组件在初始化时没有销毁,可能会导致内存泄漏等问题。

AI 审查比一般的静态扫描工具更强大,因此我们现在也在推动团队使用 AI 审查,并根据团队的实际情况添加一些规则。此外,由于我们是做 ToB 的,难免会涉及到 on-call 问题。因此,我们也在用 AI 进行台账和日志解读,它能够帮助我们解析用户运行时的报错,并 给出 AI 解读。比如,一些配置问题或代码翻译问题,AI 可以清晰地告诉用户问题所在,用户也能知道如何处理。

此外,我们还发现 AI 在扫描慢 SQL 时效果非常显著。我们已经将这一功能集成到产品中,帮助用户快速识别和定位慢 SQL 问题。现在,我们还在尝试 ChatOps,与监控团队合作。以前,分析或预警监控数据是个比较麻烦的事情。接入 AI 后,我们发现它在异常分析和变动分析上具有优势,尤其是某些情况下机器的毛刺、水位异常等问题,AI 无需我们编写规则就能有效处理。

最后,我想提一个我自己觉得非常好用的工具,我们正在使用 AI 工具进行代码优化和重构。早在 2020 年,我在阿里时,我们团队开发了一个表格组件,这个组件在 GitHub 上有相当多的用户。去年,我请求 Windsurf 帮我优化该组件的多维表格计算性能,结果它给出了几千字的优化建议,令我非常惊讶。我测试了一些建议,确实有效地提高了效率。

段潇涵:首先,在公司内部,我们可以看到 AI 逐渐渗透到 DevOps 的各个环节。 例如,在 Git 管理平台上,最初是出现了 AI 对 commit message 的总结,或者是有机器人帮你进行代码审查。随着时间的推移,基于大规模代码库和索引,Git 平台会逐步分析代码中是否存在变量命名问题、是否存在碎片化的函数等问题,这些功能也逐渐得到实现。我认为 Git 相 关的演进还是非常迅速的,因为编码与 AI 的结合,确实是大家探索的一个重点方向。

第二个方面是,在文档整理和架构设计时,我和团队成员会使用一些 AI 工具。过去我们可能更倾向于使用 C4 模型和 Plant UML 来画图,但这些图其实可以通过文本表达出来。很多时候,只需要清楚地表达需求,AI 就能快速生成相应的图形。如果手动绘制,这个过程非常耗时,且需要考虑布局和连线的问题。而通过代码转化为图像,再结合 AI,可以大幅提升效率。还有,我们内部使用的飞书工具也包含了非常实用的 AI 功能,尤其是在多维表格和文档处理方面。过去我会自己整理对比表格,处理表格的宽度、高度和单元格合并等细节。而现在,我只需使用无序列表,完成后可以一键整理成表格,效率非常高。AI 还能帮助设置表格的宽度与最长的对齐,自动合并同类项,这对云端文档非常有帮助。

回到我自己负责的 AI 与编码相关的工作,我们在 IDE 中更多地考虑如何将 AI 能力集成到开发者的日常工作中。大家常见的就是聊天侧边栏功能,比如 Windsurf 和 Cursor 等工具,它们通过对话生成内容。除此之外,IDE 的基础功能也可以与 AI 结合,比如在编辑器中,当出现 lint 类错误时,AI 可以快速联动到聊天窗口,或者直接在原地更新代码。比如,使用 VSCode 或 JetBrains 等 IDE 时,AI 可以帮助分析语法错误,处理自定义的 lint 报错,甚至检测出代码中的潜在问题,在终端中调试和查看报错时,AI 可以帮助我们快速判断问题是出在代码还是环境配置上,这些都能通过 AI 提高开发效率。搜索功能方面,AI 可以更好地理解自然语言,帮助开发者快速找到需要的内容。可以预见,在传统 IDE 功能的基础上,AI 将会为各个环节提供更深层次的支持。

精选留言