8个AI技巧助力Web开发者(及职业发展)
无论好坏,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”。
- 在单独一行以以下消息结束每条提交信息:“(This commit message was AI-generated.)”
效果良好,节省时间,质量与我编写信息时一样好(甚至更好)。
但以下似乎很重要:以标准化方式编写体面的提交信息仍然是一项好技能。也就是说,如果你是一名初级开发者,尚未围绕记录更改形成扎实的技能和习惯,我建议先培养这一点,然后使用AI作为支持。掌握基础至关重要,因为这是你专业信誉的核心。
4. 获取AI代码审查
除非你为他人工作贡献代码,否则可能不会获得代码审查。但如果你在组织内开发代码,可能会遇到各种代码审查风格和流程——有些审查者通过所有内容,其他则会在每个文件中讨论制表符与空格;有些情况你立即获得反馈,有些则需要经理支持才能最终获得其他团队的审查。
在这两种情况下,AI代码审查都有帮助。如果你需要目前无法获得的第二意见,它们非常有用,并且可以加速和协调组织内的代码审查。
你可以使用什么工具?我仍在评估更多选项,但目前最喜欢的代码审查助手是CodeRabbit。它正确识别了我可能未注意到的问题,我喜欢在自身项目中更复杂的更改上依赖它。
注意,我并不是说 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列表”。例如,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解决痛点和实施较小项目来积累经验和强烈的AI意识。
- 通过定期探索AI工具,关注AI景观,我们受益。
- 我们必须如此了解AI,以至于我们也知道它与我们工作相关的缺点——我们必须利用这些知识不断重新定义自己作为专业人士。
我相信这就是我们在Web开发中AI方面的现状和现在可以做的事情。
非常感谢Kevin Khaw审查这篇文章。