讨论下 AI 写小项目要用 ts 么?

59 天前
 FaiChou

现在用 AI 写小项目太方便了,前后端的项目,直接用 nextjs 梭哈,代码都不用管,当一个产品经理和测试即可,自己懂部署就行。

但随着使用的次数增加,AI 的一些问题会暴露出来。nextjs 会让你选是否使用 ts ,如果使用了 ts ,AI 写的代码会经常需要自己修改 lint 问题,还有一些 any 声明的问题。虽然这些可以 disable 掉,但还要手动去碰这些脚手架,对于不是很懂开发的人员来讲,这也要话时间去学习研究。虽然 AI 可以帮你完成,但最好你懂它在干什么。

但是丢掉了 ts ,感觉就会少一层保护。现在就出现“既要又要”的局面,既想要 ts 带给的安全警告,又要 AI 能够像一个真正的“程序员”一样来完成项目。

项目代码稍微多一点,AI 就会出现到处“拉💩”的问题,同样的方法不知道抽象出来。而且一个 ts 文件代码行数越来越高。有一次让它去重构一下,因为中间遇到了一个警告问题,结果把页面的逻辑也给改乱了。

再一个是关于数据库,用 prisma 这种 ORM ,感觉更复杂一些,还需要手动 generate 和 migrate ,尤其是后面对数据库表结构调整。最近的几个项目我都没用 ORM ,直接操作数据库,这样更方便一些。舍弃了 ORM 带了的一点好处。

总结一下,现在的 AI 可以做一个好帮手,但随着项目的代码增加,需要一个真正的程序员去半自动化管控,及时的让 AI 来重构。

2761 次点击
所在节点    程序员
17 条回复
foolishcrab
59 天前
其实你这个结论就是 ai hype 人群和正常程序员的根本分歧。
正常程序员在兴奋过后,马上就会想在生产级代码上去使用 ai ,然后得出你这个结论。而 hype 哥们只会不停地输出补光灯 app 来强化 ai 无敌这个观点
Lemon2ee
59 天前
ai 编程不是开盲盒,是帮你省去打字的功夫。

代码生成后仍然是需要你去审阅,仍然需要你去记住代码结构,这样你下一次让 ai 帮你写代码的时候你能够告诉他怎么写,用什么 function ,怎么拿东西,要注意什么等等。
oliveira
59 天前
我感觉 TS 的类型系统提升了 AI 编程的稳定性。特别是在 Agent 模式下,AI 可以自动修复 TS 类型问题,从而确保代码不会有明显的类型错误。
EgoTao
59 天前
刚巧这两天领导让我去看看 anima+figma 能不能减少前端工作量。 测试了一下,首先第一点需要 UI 用 figma 的时候尽量符合 Anima 的规范,不然它都不知道这里是不是可以滚动的。第二点,就是生成出来的代码,如果想迭代要么就是重新生成,要么就需要花打吧时间去描述逻辑和验证代码,也就是你说的这个情况。当使用 AI 进行迭代,还是需要人工介入的。 我给领导的反馈就是,做一次性的落地页之类的还行,对于强交互或者需要长期迭代的反而不如人直接上手。
sing1ee
59 天前
AI 是比较喜欢 ts 的,——所以适合。
FaiChou
59 天前
@Lemon2ee

AI 写代码分成三种模式:
一种是让 AI 来 tab 补全,逻辑完全自己掌控,这种已经很成熟了。
另一种是半自动化,对于一个成熟的项目,让 AI 来迭代,喂给它需要了解的代码,以及讲好需求,它来实现。这种也挺成熟的。
最后一种是全自动化,项目的创建,代码的编写完全由 AI ,自己仅做产品经理和测试人员的工作。这种会遇到很多问题,也就是我上面写的那些各种问题,这种问题可能是由上下文太长导致的,仅仅靠一些 system prompt 解决不了。
iceNa
59 天前
我最近在改造老项目的时候也遇到了,因为之前的同学图省事有比较多的 ts 类型错误没有修改。
所以我现在每次提问都会补上一句: [如果遇到历史 ts 类型错误,暂不修改,先完成主线任务。完成后输出你认为需要修改的地方,由我决定要不要修改]
sunny352787
59 天前
我建议用 TS ,给 AI 更多的检查错误的机会写出来的代码更好
AlexHsu
59 天前
你最擅长什么就用什么 ai 的一些 bug 藏的很深 你在那个技术层面造诣不够 找起来可老浪费时间了
ccpp132
59 天前
我纯用 ai 做补全,光这样都遇到过好几次 bug 需要修复,不敢想象全交给 ai
tonytonychopper
59 天前
我还以为现如今的前端项目里,TS 早就是必选了
elevioux
59 天前
越严格越好,减少出错的可能。type 关键字也能当作上下文
nowheremanx
58 天前
个人只用 AI 进行自动补全。 几十行的一次性脚本可以让它发挥,要修改的话,直接改得面目全非,都忘了最开始的需求了。
theprimone
58 天前
不用 TS 已经不会写代码了
asen001
58 天前
有类型定义的情况下,AI 可以修复不少错误,体验还可以。
lanxxkk
56 天前
把规则定义好了可以减少很多错误。
liuhui244671426
56 天前
可以试试。

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

https://yangjunhui.monster/t/1124395

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

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

© 2021 V2EX