工欲善其事,必先利其器。对软体工程师来说,好的工具可以让你成为 10x 工程师。许多程式界名人,例如 Python 的发明者、微软的 CTO 都已经在用 AI 帮忙写程式,假如你还没开始用的话,这篇文章汇总了一些给开发者的 AI 工具,相信对想要提高生产力的你会有帮助。
AI 辅助写程式
GitHub Copilot
GitHub Copilot 是业界目前最有名的 AI 程式助手工具,它最早是从程式码自动补全开始,后来推出了 Copilot Chat。过去有些人会用 ChatGPT 帮忙写程式,但是自从有了 Github Copilot Chat 后,很多人就再也没有开过 ChatGPT 的网页来帮忙写程式了。
虽然技术上来说,Github Copilot Chat 底层是用 GPT-4,所以仍是在用 ChatGPT 帮忙;只是用的介面,不再是 ChatGPT 的网页,而是直接在写程式的编辑器中用 copilot,让体验大大加分。
Supermaven
由前 OpenAI 的研究员 Jacob Jackson 所开发,是目前业界中最快速的 Copilot 的程式码补全工具。Supermaven 在回应速度比起 GitHub Copilot 将近快三倍,且支援到 1 millon tokens,让生成结果更贴近程式码库原有程式码。 除了程式码补全,Supermaven 也有 Supermaven Chat,可以跟 IDE 整合,直接在写程式时,就询问 AI 问题,且支援不同模型的搭配 (例如 GPT-40 与 Claude 3.5 Sonnet 等)
Codeium
Codeium 也是目前业界相当热门的 AI 辅助程式工具。在先前的 AI Engineer World’s Fair 大会中,Codeium 团队分享他们如何透过重新打造基础设施,以及透过新的回溯 (retrieval) 方法,来让 Codeium 的 AI,能够应付超庞大的程式码库。
具体来说,Codeium 透过切分与重新排序的演算法,来完成并行运算,所以即使程式码库超大,Codeium 的 AI 的补全与回应速度,也丝毫不会下降。
Sourcegraph
Sourcegraph 目前有超过两百万位开发者使用,主要功能与 GitHub Copilot 相当相似。但除了程式码补全外,在工作流程的整合与自动化,也是 Sourcegraph 的特点之一,透过与常见的 Git 管理工具 (例如 GitHub 或 GitLab) 整合,在程式码搜寻、依赖管理,以及大规模程式码改动上,都非常方便。
AI 驱动的 IDE
Cursor
Cursor 是一款 AI 驱动的 IDE,是 OpenAI 投资的公司,产品也是基于 ChatGPT API 开发。用起来跟 VS Code + GitHub 的 Copilot Chat 差不多,不过体验更好。因为是从 IDE 本身就整合 AI,所以会有 AI agents 直接跑在 IDE 上,所以比起 GitHub Copilot 在解 bug 时,可以更全面且深入。Cursor 最强大的地方是,你可以丢一个开源专案的网址给它,然后让它依照该专案的程式风格来给你建议,实测起来效果非常惊人。
Replit Ghostwriter
Replit 是有名的云端 IDE 厂商。IDE 搬上云端的好处,是可以让你不用为环境所苦恼,因为安装要让程式能跑起来的环境,往往很费时,有时因为本地的某个依赖版本不对,程式怎么样就是跑不起来。云端 IDE 让每次要跑新专案,可以省去这些时间,做到真正开箱及用。
第二个云端 IDE 的好处,是可以实现多人共同实作,可以让团队同时在线上的环境中一起写程式。对于 Pair Programming 来说非常方便。
云端 IDE 还有很多优点,但光是上面两点就解决非常多开发者的痛点。而 Replit 推出的 Ghostwriter 让你在云端上写程式时,有 AI 助手帮忙。
Google IDX
Google IDX 跟 Replit 基本上是一样的概念,是一个带有 AI 程式助手的线上 IDE。
AI 开发助手
v0
v0 是一款由 AI 帮忙生成 UI 元件的工具。你只需要输入提示词 (prompt),v0 就会根据你的提示词,生成出相对应的 UI 元件完整程式码。换句话说,透过 v0,用嘴巴写 UI 元件这件事不再只是说说,而是真的被实现了。
例如你输入“帮我生成一个 Twitter 的推文元件”,然后它就会生出相对应的程式码。如果你觉得跟你的想像没有完全一样,你可以进一步输入提示词,让 v0 根据原本的 UI 元件去做修改。
以 v0 的网站范例来说,Twitter 推文元件的第一个版本没有到很精致,但是后面加了“上面区域的空间要大一点、加上大头贴”等提示词,v0 就会一步步修成你理想的 UI。然后你只需要复制程式码,就可以直接拿来用。
What The Diff
在多数大型软体团队,都会要求在程式码提交时的 PR (pull request) 要写的精准完整,这么做对于后续的维护会很有帮助。
然而要把提交描述写的完整,很花时间,所以有些时候工程师偷懒或太忙就会忽略,造成长期的不良后果。而 What The Diff 这个 AI 工具,就是用来解决这个问题;每次提交时,AI 会自动扫过所有程式码改动,然后根据改动来生成 PR 描述,大幅节省工程师自己写的时间。
Ellipsis
Ellipsis 是一个由 AI 驱动的程式码审查(code review) 工具,这个工具有几个特点
- 能根据设计模式给回馈,确保程式码符合最佳实践
- 能根据目前程式码库的风格给回馈,确保一致性
- 能扫描提交的程式码,并根据需求来判断是否有逻辑错误
- 能依照最新的安全规范,来确保程式码没有安全漏洞
实际试用可以看到,真的能帮忙抓出不少程式码的问题。当用了这个工具,可以大幅减少在 code review 时来来回回的讨论,直接针对最佳实践与团队风格,来确保程式码的品质与可维护性。
Visual Copilot
由 builder.io 开发的 Figma 转程式码的 AI 工具。builder.io 是一间技术底很强的公司,它的 CTO Miško Hevery 早些年在 Google 时带领团队推出 Angular 这个到现在还是被列在三大前端框架的前端工具。后来到 builder.io 当 CTO,也推出了几个在社群有很大回响的工具。换句话说,Figma 与 builder.io 的合作,就是在设计工具顶点的公司,与做网页开发工具在顶点的公司,强强联手的概念。
Supabase Assistant
Supabase 是一个开源的 Postgres 资料库工具,而在整合上 AI 助手后,在使用 Supabase 时,可以直接用自然语言描述,就由 AI 来帮忙生成 SQL 语句;或是原有的 SQL 语句想要优化,也可以请 Supabase Assistant 帮忙。
AI 程式学习工具
MDN AI Help
不论是学 JavaScript、网页前后端开发的人,MDN 过去一直都是必备的。原因无他,因为 MDN 有最完整的网页开发资源,对任何 JavaScript 或 Web API 概念不熟,MDN 的文件基本会是第一个去找的。
过去多数人可能文件看不懂,或是不知道要怎么找到想找的资讯时,会去 StackOverflow 问。但是现在不再需用了,你可以直接问 MDN 的 AI Help。这个 AI Help 背后也是串 ChatGPT API,只是比起问 ChatGPT,因为是直接用 MDN 的资料来源,所以对于网页开发知识的精准与正确性会比较高,乱回答的状况也会比较少。假如你过去学网页开发的路上有挫折,或是不擅长直接看文件,现在有了这个 AI Help,基本上就等于有个网页开发家教。问中文也完全没问题。有兴趣的人快去试试吧!
CS50 ddb
假如你过去没有电脑科学、软体工程相关背景,但是想要学程式、学软体,或是想要补足自己在电脑科学相关知识的不足。哈佛大学的 CS50 绝对是最推荐入门的一堂课。
哈佛这门 CS50 不只是一门课,还是一个完整的学习体验,在过去除了开发 CS50 自己的 IDE,还做了像是 check50 的工具帮忙看程式码的正确性,甚至还有 debug50 这类工具帮忙除错。只能说对于完全没有相关背景的人,真的非常友善。2023 年更与 OpenAI 合作,推出了 CS50 ddb 这款程式家教,他会用引导的方式,带你解决写程式时遇到的问题,非常推荐任何处学程式的人使用。