8个提升Web开发者效率与职业生涯的AI实用技巧
无论好坏,AI正在席卷各个领域。在Web开发中,我们虽不处于AI地震的震中,但也离之不远。这对我们的工作意味着什么?
如果你和我一样,在几年前首批AI工具问世时并没有立即跟进。由于了解AI的一些问题,并且珍视我们领域的手艺,你可能直到今天也没有过多使用它。
如果你尚未在Web开发中使用AI,我认为这是一个错误。让我分享过去几个月全面投入AI观察后的一些想法和技巧。
以下建议适用于以个人身份从事Web开发的开发者。(我也在准备分享关于Web开发团队中AI的观点。)这假设你确实拥有自己的项目(包括,希望如此,你自己的网站)。
1. 立即行动
使用AI。如果你还没有开始,今天就行动起来。如果你不这样做,你的公司可能会把你扔下他们正在驾驶并且曾经让你上车的巴士。
我不是在开玩笑(或者说,我并不乐观)。
AI对环境有害,对我们的手艺也不利,但与现实争论毫无意义。(对于这两点,我们都可以并且应该采取一些措施,但这些需要在其他地方讨论。)
近年来,我们也看到了更多的裁员。无论公司自诩为“最佳工作场所”多么自豪,因此显得多么虚伪,行动胜于雄辩。在科技公司,我们已经到了做最坏打算的时候。
2. 配置AI助手
当我们在这里谈论AI时,我们指的是与开发相关的AI。像ChatGPT这样的通用AI可以有所帮助,但对于我们的工作,我们需要专门的工具。这里最突出的选择可能是GitHub Copilot,不过我也喜欢JetBrains的AI助手。获取许可证。尝试适合你的工具。最重要的是,但我们会更多涉及这一点,使用它。
3. 自动生成提交信息
一个节省时间的好方法是AI生成提交信息。(我每月大约处理1,000次。)JetBrains的AI助手在JetBrains IDE中使这变得容易。以下是我基于默认设置使用的提示,利用了Conventional Commits并将每个提交信息标记为AI生成:
- 避免过于冗长的描述或不必要的细节。
- 以祈使形式的短句开始,不超过50个字符。
- 使用Conventional Commits风格。
- 然后留一个空行,继续更详细的解释。
- 第一部分只写一个句子,详细解释最多两到三句。
- 对于仓库中的任何内容[…],提交信息只需以下内容:“chore: include automated changes”
- 在每个提交信息的末尾单独一行添加以下消息:“(此提交信息由AI生成。)”
它效果很好,节省时间,质量与我写信息时一样好(如果不是更好的话)。
不过,以下似乎很重要:能够以标准化方式编写体面的提交信息仍然是一项好技能。也就是说,如果你是一名初级开发者,尚未在记录变更方面形成扎实的技能和习惯,我建议先培养这一点,然后使用AI作为支持。能够处理基础知识至关重要,因为这是你专业信誉的核心。
4. 使用AI审查代码
除非你为其他人的工作做贡献,否则你可能不会得到代码审查。然而,如果你在组织内开发代码,你可能会遇到各种代码审查风格和流程——有些审查者一切放行, others 则会在每个文件中讨论制表符与空格;有些情况下你立即得到反馈,有些情况下你需要经理支持才能最终从其他团队获得审查。
在这两种情况下,AI代码审查都可以帮助。如果你需要目前无法获得的第二意见,它们非常有用,并且可以加速和统一组织内的代码审查。
你可以使用什么工具?我仍在评估更多选项,但到目前为止我最喜欢的代码审查助手是CodeRabbit。它正确识别了我可能 otherwise 没有注意到的问题,并且我喜欢在自己项目中更复杂的变更时依赖它。
请注意,我并不是说 solely 依赖AI代码审查。虽然我们可能因个人工作需要这样做,但在组织中情况不同。在这里,我们可以将AI纳入流程,然后根据我们的期望和经验进行调整。
5. 使用AI重构代码
如果你像其他开发者(或像我一样),你使用待办注释标记可以清理的地方😂(或者你呢😃)
你的AI助手或编辑器的一个伟大用例是重构这些地方。例如,JetBrains有一个出色的重构选项(我认为这是除了提交信息之外最好的AI功能),允许请求对此类代码的重构建议。在你自己的代码上尝试一下。虽然解决方案可能不“完美”,但它可能仍然比之前的更好。(如果不是,你总是可以在代码上再贴一个“待办”注释——或者回滚。)
重构是AI可以大放异彩的地方——我建议为此使用它。
6. 完成五个测试项目
……现在就开始:写下你目前最大的痛点、最让你烦恼的重复任务、你一直想做的项目。
如果你有时间并且已经设置好,请你的AI代码助手为你需要的解决方案或设想项目提供脚手架或脚本。允许自己被拖入其中。构建它。
完成五个,让更多这样的项目实现。如果你能处理额外的工作(参见“AI悖论”),记录、发布并宣布它们。
关键是培养AI开发工作的肌肉,并锐化你对它在哪里有帮助(以及在哪里没有)的感觉。
7. 定期探索AI工具
以专业和个人身份,不断尝试AI解决方案。是的,每个人都在推出一些AI产品,但这里的重点是关注你领域内的AI解决方案,并养成测试它们的习惯(对我来说,定期提醒有助于这一点)。
以下是我一直在评估或计划评估的一些解决方案:
- Amazon Q Developer
- Bito
- Codacy
- Codepeer
- CodeScene
- CodiumAI
- Cursor
- Grit
- Figstack
- Mutable.ai
- PullRequest
- Reviewable
- Sourcegraph Cody
- Tabnine
一旦完成,你和我都可以继续探索一些AI的“awesome lists”。例如,Mahsima Dastan的Awesome AI Tools,或James Murdza的Awesome AI-Powered Developer Tools。
8. 决定在哪里不使用AI
我已经建议在形成良好习惯之前等待使用AI提交信息,你们大多数人都会这样做。
这是一个更大主题的一部分——意识到或变得意识到你可以将哪些工作委托给AI,哪些可能你不能移交。
这里我认为这变得微妙:
你可以划一条线,说你在你的主要专业领域不使用AI。例如,我不使用AI生成HTML和CSS,我有很多理由自己动手(如果你还没有,考虑关注我的工作!)。
但测试AI并检查它在哪里可以使你更高效——或过时——仍然有意义。
这看起来像坏消息,当然——但你想在别人告诉你之前以这种方式学习。它将使你能够采用和调整,以a)将AI纳入你自己的工作中,和b)发展你的非AI形象,识别和塑造一个可以从你和你的才能和经验中受益,而尚未从AI中受益的领域。
如果你学会使用AI,以便你也知道AI不能在哪里使用,你将正好处于我们作为专业人士未来将被需要的位置。如果你不这样做,你正在做的工作很可能会被AI化和自动化掉。
总结
- AI是能源消耗大户,我们迫切需要弄清楚如何让它消耗更少的资源,更多然后全部是可再生的。
- 如果我们不批判、不持续学习、不培养何时不使用AI的意识,AI会让我们变笨。
- 作为开发者,不仅仅在Web开发中,我们需要将AI纳入我们的工作。有足够多的公司不太关心人,所以如果我们不适应,我们就会被淘汰。(这是一场灾难,需要改变,是的。)
- 将AI纳入我们的工作从AI IDE或带有AI代码助手的IDE开始。
- AI生成提交信息是一个好的AI用例。
- AI支持的代码审查是一个强制性的AI用例。(我绝对看好这一点。)
- AI支持的重构是一个伟大的AI用例。
- 我们可以通过使用AI解决痛点和实现 smaller 项目来积累经验和强烈的AI意识。
- 我们通过定期探索AI工具,关注AI landscape 受益。
- 我们必须非常了解AI,以至于我们也知道它与我们工作相关的缺点——我们必须利用这些知识不断重新定义自己作为专业人士。
我相信,这就是我们在Web开发中AI方面的现状和我们现在可以做的事情。
非常感谢Kevin Khaw审查这篇文章。
Jens Oliver Meiert是一位前端工程领导(例如,Google, Miro)和技术作者/出版商(O’Reilly, Frontend Dogma)。他是Web开发专家,专精于HTML和CSS优化和可维护性。Jens为技术标准做贡献,并定期撰写关于他的工作和研究,特别是在他的网站meiert.com上。