ChatGPT 与 AI 辅助编程初体验

刚开始听说 ChatGPT 能写代码的时候,说实话我是抱有怀疑态度的。毕竟平时遇到坑,连 StackOverflow 都不一定能马上解决,一个 AI 真的能懂业务逻辑吗?

但实际用了一段时间后,感觉还行,确实改变了我平时写代码的一些习惯。这里简单记录下最近的一些使用感受。

平时主要拿它做什么

试了一圈下来,发现它在下面几个场景里还挺顺的:

1. 撸基础代码

平时写些重复性比较高的代码,可以直接让它生成一个底座。比如要写个接口:

我会这样问

用 Node.js + Express 写个文件上传,用 multer,限制 5MB,只能传图片,传完返回 URL。

它给出的代码基本上能覆盖大概 80% 的逻辑。剩下那 20% 肯定还得自己改,比如业务报错处理、具体的鉴权校验什么的。但总归比从零开始敲要省事。

2. 看不懂别人的代码时

接手老项目或者看开源库源码,遇到那种绕来绕去的逻辑,直接把代码贴进去让它解释,体验还不错。

帮我看看这段防抖代码具体是怎么运作的:

1
2
3
4
5
6
7
8
9
10
11
12
13
function debounce(fn, delay, immediate) {
let timer = null
return function(...args) {
if (timer) clearTimeout(timer)
if (immediate && !timer) {
fn.apply(this, args)
}
timer = setTimeout(() => {
if (!immediate) fn.apply(this, args)
timer = null
}, delay)
}
}

这比去搜索引擎翻博客找答案快多了。

3. 查报错

遇到控制台标红,把报错信息连带相关代码扔进去:

这个 Vue 组件切路由报错 “Cannot read property ‘map’ of undefined”,帮我看下问题在哪:
[贴上代码]

大部分时候它能很快指出问题(比如数据还没加载完就渲染了),并给出修改建议。

4. 写正则

这个算是最爽的点。正则这东西过段时间不写就容易忘,现在直接提需求:

写个正则匹配手机号:1 开头,第二位是 3-9,总共 11 位。

1
const phoneRegex = /(?<!\d)1[3-9]\d{9}(?!\d)/g

直接拿来测一下没问题就能用,挺省心的。

5. 简单探讨下方案

在动手写之前,可以让它给点思路。比如要做个权限管理,我会问:

要做一个简单的电商后台权限系统,菜单和按钮级都要控制,前端用 Vue 3,给点前后端的设计建议。

它给的方案往往比较中规中矩,但作为起步参考是够了。

一些小经验

用多了发现,你提问的方式很大程度上决定了它给出的结果。

别问得太宽泛

1
2
3
4
5
❌ 这样问不太行:
"帮我写一个登录功能"

✅ 这样问比较稳:
"用 Vue 3 Composition API + TypeScript 写个登录表单,要包含账号密码、基础校验、加载状态,用 Element Plus"

多聊几轮

很少有一次就能生成完美代码的情况。一般都是先让它搭个架子,然后接着说“加上类型定义”、“补充下错误处理”,慢慢调整到能用的状态。

感觉比较明显的局限性

当然,这东西肯定不是完美的,用下来也踩了不少坑:

  1. 会一本正经地胡说八道(幻觉):有时候它会捏造一些根本不存在的 API。看着特别合理,一跑就报错,所以它给的偏门方法还是得查查文档确认下。
  2. 时效性问题:稍微新一点的框架版本(比如某些新出的语法糖),它可能根本不知道,还会用老一套的写法教你。
  3. 理解不了整个项目:它只能看懂你贴给它的那几行代码。涉及到复杂业务流转或者全局架构调整,它就帮不上什么忙了。
  4. 安全问题:公司核心的业务代码肯定是不能随便往里贴的。

简单总结

总的来说,AI 辅助编程改变了一些工作习惯。以前可能要花很多时间去查 API 怎么拼写、查某个配置怎么配,现在这些脏活累活可以让它代劳,自己可以把更多心思放在业务逻辑和代码审查上。

工具确实能提高点效率,但最终判断代码质量、能不能上生产环境的,还是咱们自己。感兴趣的可以搜一下自己顺手的工具试一试。

------ 有问题请 留言给我哦! 也欢迎入群讨论! 点我呀! ------

评论加载中…

0%