Cursor 生成的代码有个大坑,排查了一晚上才找出原因

230 天前
 drymonfidelia

我让它判断输入里只能有字母和数字,其它输入要拦截

结果上生产环境后经常出现奇怪的输入内容没拦截掉

"测试".All(x=>char.IsLetterOrDigit(x)) 

最后发现原因出在 Cursor 生成的这行代码输入中文结果居然是 ture

混在一堆代码里面完全想不到这里能出问题,我手写的话根本不知道 C#有这个函数就不会出问题

C#这起得啥名太具迷惑性了,和 Python 的 rstrip 一样,rstrip 我是没用错过,但看过不止一个开源项目里面用错了

3166 次点击
所在节点    C#
12 条回复
AoEiuV020JP
230 天前
这个,正常, 目前 AI 写的代码还没到不需要 review 的水平,正相反,每一行都要看过一眼,
csys
230 天前
使用 LLM 写代码节省出来的时间,是用来给你写测试验证代码功能的
drymonfidelia
230 天前
@AoEiuV020JP AI 用的冷门函数有些时候 review 也还挺难看出问题,像这个情况看起来还是那回事实际上完全用不了
AoEiuV020JP
230 天前
@drymonfidelia #3 那这种情况属于自己写的话也得反复斟酌来回查文档甚至测试几个 api,
不如直接让 AI 把单元测试搞出来,这种功能明确的最适合让 AI 写测试了,
drymonfidelia
230 天前
@AoEiuV020JP 自己写的话我会用正则,不会用这个很冷门的内置函数
AI 估计一看这个函数名字 IsLetterOrDigit ,我的要求是 只能有字母和数字 刚好符合就用了,结果这个函数根本不是这么用的
Anton
230 天前
hhhh 老哥惨,这函数没用过的话真发现不了问题
echohey
230 天前
怎么没让 cursor 给你生成单测?
akira
230 天前
测试代码呢。。。
wweerrgtc
230 天前
把代码复制出来 让 gpt 来 review
drymonfidelia
230 天前
@wweerrgtc 试过了,除非你明确告诉 GPT 哪一行不符合预期,不然 GPT 完全找不出
SenLief
230 天前
ai 生成的一定要写测试
meteora0tkvo
229 天前
正常,ai 生成的代码也是有 bug 的,所以自己本身要懂代码才能让 ai 生成,压根就不是网传的不懂代码也能利用 ai 写代码

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1106062

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX