前言
基于 GitHub 的调查结果和对开发者的采访,探讨了 AI 编程工具如何改变开发者的工作方式,以及开发者如何利用节省下来的时间。AI 编程工具能够帮助开发者节省调试、文档编写和搜索的时间,并将更多时间投入到系统设计、团队协作、学习新技能和实验新技术上。今日前端早读课文章由 @飘飘翻译分享。
正文从这开始~~
AI 编程工具的出现正在改变开发者的工作方式。
我们最近的一项调查显示,几乎所有受访者都表示他们曾在某个时候使用过 AI 编程工具,而且绝大多数人表示这些工具有助于编写更高质量、更安全的代码。同样,2023 年 JS 状态调查发现,只有 18% 的受访者不经常使用 AI 编程工具。
【早阅】2024 年 Stack Overflow 年度开发者调查结果
负责撰写《IT 专业人士生成式 AI》一书的合著者克里斯西・勒梅尔(Chrissy LeMaire)最近告诉我们,LLMs 正在改变她的工作流程。“当你开始一个项目时,你必须做各种准备工作,” 她说。“要过一段时间才能进入有趣的部分。现在我让 LLM 帮我做这些工作。有了 AI 编程,从一开始就很令人兴奋。”
GitHub 的研究表明,AI 工具可以将开发者的生产力提升高达 55%—— 但使用 AI 编程工具节省下来的时间,你又会如何利用呢?根据我们的调查,受访者们将更多的时间用于系统设计、与同事协作以及学习新技能等方面。
此外,AI 工具使他们能够更擅长自己的工作,创造出积极的反馈循环,不仅帮助他们编写更多的代码,而且还能编写更好的代码。为了了解实际情况,我们一直在与开发者交流,了解 AI 是如何改变他们的工作流程以及他们如何利用 AI 编码工具节省的时间。
在这篇文章中,我们将:
听听开发者们如何使用 AI 编程工具来节省时间。
分享一些如何开始的技巧。
减少调试时间,增加规划时间
许多开发者表示,由于 AI 的帮助,他们能够将更多时间用于设计和规划阶段 —— 这意味着有更多的时间去思考系统,这对他们来说是有益的。“我花在反复尝试和错误上的时间更少了,而花在确保代码安全和高效上的时间更多了” 开源开发者克劳迪奥・翁德在我们最近关于 AI 编程工具的问答中告诉我们。
他不是唯一这么认为的人。在我们的调查中,40-47% 的受访者表示,AI 使他们有更多时间设计系统和客户解决方案。与此同时,37-43% 的受访者表示,他们有更多时间用于重构和优化代码。
换句话说:开发者们把时间花在让代码变得更好上,而不是仅仅让代码运行起来。
这个过程在你写第一行代码之前就开始了。例如,Wunder 使用 GitHub Copilot Chat 来构思项目。将自己想法解释给无生命物体听以理清思路这种想法被称为 “橡胶鸭子法”。但 LLMs 将这一活动引入了新的维度:他们可以进行对话。Wunder 不仅可以整理自己的想法,还会得到对自己想法的反馈,从而在开始新项目时对自己的代码结构时有了更清晰的思路。LeMaire 发现自己也做了类似的事情:“我花在琐碎工作上的时间更少了,更多时间是在交谈。”
以下是一些实用的建议,帮助您开始使用 GitHub Copilot 设计系统和重构代码:
说出你的偏好。Wunder 开始新项目时,会告诉 GitHub Copilot Chat 他更倾向于使用 ES6 内置函数和箭头函数。“这些简单的声明通常可以帮助你实现预期的代码输出,并更好地理解 Copilot 的思考过程,” 他解释道。
分享例子。LeMaire 在处理项目时,采用的方法与没有 LLMs 时相似,即通过寻找类似事物的例子。她说:“我会上传样本文件,有时将它们合并成一个大文件,然后告诉 LLM 我想要什么。”
从一个基本函数开始。当需要生成内联代码时,Wunder 建议从有意义的参数、参数和解释函数功能和每个参数控制内容的注释开始。
调试就像是一种对话。Wunder 在 VS Code 中打开所有相关代码,并开始一个新的 Copilot 聊天会话,并以 “让我们调试一些代码” 作为提示。然后,他向 Copilot 提问,比如它认为代码在做什么,以及针对不同的用户输入,会发生什么响应。“我会尽量向 Copilot 提供尽可能多的关于代码应实现目标的上下文信息,并通过后续问题不断迭代,直到找到问题和解决方案,” 他说。
减少用于文档处理的时间,增加团队协作的时间
AI 不仅用于与机器交流。它还能让开发者有更多的时间互相交流。我们调查的 40-47% 的受访者表示,AI 帮助他们将更多时间用于与团队成员合作完成项目。另外 39-45% 的人表示,他们花更多时间在代码审查上,这是开发者相互协作、共同提高工作质量的主要方式之一。
LLMs 可以自动生成代码注释和文档,使代码更易于理解,进而更容易进行代码贡献。LeMaire 说:“我能够对一些 JavaScript 代码进行分析,让 LLM 根据函数名称和参数生成符合 JSDoc 格式的文档,准确率高达 95%。我的团队非常喜欢这个功能。”
结论:开发者不仅有更多的时间一起工作,而且可以更轻松地进行合作。
当使用 LLMs 来提升协作时,以下是一些实用的建议:
使用你最喜欢的现有帮助文本作为示例。LeMaire 建议提供 LLMs 一份文档示例,以模仿你想要复制的风格。例如,她会向 LLMs 提供她最喜欢的 PowerShell 命令的帮助文本,以帮助 LLMs 生成符合她偏好的语气和格式的文档。
在每个文件中留下注释。每当你打开一个代码文件时,在顶部添加一些作为标题的注释,以帮助 GitHub Copilot 更好地理解代码。GitHub 开发者倡导者克里斯托弗・哈里森(Christopher Harrison)说:“这将不仅提高你的工作效率,同时也会提高你团队成员的工作效率。因为你留下了这些小小的‘甜点’。” 就像在休息室里放了一份数字化的甜甜圈。”
减少搜索时间,增加学习和实验时间
跟上最新的语言、数据库、库、框架和 API 非常重要,但这可能会让人感到不知所措。AI 可以通过为你节省更多时间,帮助你跟上前言技术。在我们的调查中,43-47% 的受访者表示他们花更多时间在学习和发展上,而 44-46% 的受访者表示他们花更多时间在研究和发展以及新兴技术上。
AI 还帮助学习,在开发者学习新技能时提供实时帮助。LeMaire 最近从运维岗位转到前端开发岗位,并一直在使用 AI 工具以更快的速度工作,同时加深对前端技术的理解。“这使得从主要编写 PowerShell 和 SQL 转变为主要编写 JavaScript 变得不那么有压力,” 她说。“否则,我将不得不花更多时间切换上下文和查找信息。”
同样地,DevOps 架构师 Alessio Fiorentino 一直在使用 GitHub Copilot 来学习 Rust 语言。在之前的文章中,Fiorentino 告诉我们:“Rust 是一种强大的语言,提供了对执行流程的完全控制,但它有许多细微之处,需要不同的思维方式来思考,尤其是对于那些从 Python 或 JavaScript 开始的人来说。”“AI 帮助我克服这些复杂性,确保我编写出高效且符合 Rust 语言规范的代码。”
AI 编程工具虽然很有帮助,但它们仍然需要试用,而且它们不能替代学习。“即使在未来 LLMs 能够生成整个应用程序,你也需要评估代码,”Wunder 说。他认为随着 LLMs 负责处理实施细节,开发者的角色也将随之改变。他建议开发者专注于理解更高层次的计算机科学概念,并提高沟通技巧。幸运的是,这两者之间存在协同作用:你需要编写清晰的指令来使用 LLM,因此 AI 编码工具实际上增强了未来开发者需要磨练的技能。
当将 GitHub Copilot 作为学习工具使用时,以下是一些实用的建议:
探索一门新的或不熟悉的语言或技术。Wunder 建议使用 GitHub Copilot 来浏览给定语言的语法和特性。“我最近开始学习 Go,并向 Copilot 提问:在变量定义后添加类型 :=<
会做什么?它还帮助我理解了 Go 中的命名空间和模块定义是如何工作的。”
与新的代码库协同工作。尝试选中一段代码并让 Copilot 对其进行解释,或者提出关于代码的问题,例如哪些变量与特定功能相关。
可视化你正在学习的内容。GitHub 开发者倡导者 Kedasha Kerr 利用了 Copilot 的 mermaid 绘图功能,更好地理解了数据如何通过应用程序流动。
下一步是什么
在极为短暂的时间内,AI 编程工具已经成为开发栈中不可或缺的一部分,迅速改变了开发者花费时间和处理工作的方式。软件开发正转向设计与协作,而非修复错误。这还处于早期阶段,但 AI 正在赋予开发者前所未有的潜力。我们对您使用它所构建的内容感到非常兴奋。
😀 每天只需花五分钟即可阅读到的技术资讯,加入【早阅】共学群,可联系 vx:zhgb_f2er
总结
AI 编码工具提高生产力并改变时间分配:GitHub 的研究表明,AI 工具可以将开发人员的生产力提高多达 55%。使用 AI 编码工具所节省的时间被用于系统设计、团队合作和学习新技能。
减少调试时间,增加规划时间:开发者报告说,由于 AI 的帮助,他们可以花更多时间在设计和规划阶段。这意味著他们有更多时间成为系统思考者,这是一个淨收益。
减少文档工作时间,增加协作时间:AI 不仅仅是用于与机器对话。它为开发人员腾出时间,让他们可以互相交流。LLM 可以自动生成代码注释和文档,使代码更容易理解,从而更容易贡献。
减少搜索时间,增加学习和实验时间:了解最新的语言、数据库、库、框架和 API 非常重要,但这可能令人不知所措。AI 通过给予您更多时间来了解前沿技术来提供帮助。
关于本文
译者:@飘飘
作者:@Klint Finley
原文:https://github.blog/ai-and-ml/generative-ai/how-developers-spend-the-time-they-save-thanks-to-ai-coding-tools/