#AI辅助编程

宝玉
3周前
问:宝玉老师您好,现在一方面不断有AI公司发布性能更佳的vibe coding,另一方面又在不断说AI编程带来很多debug和维护的困难,现在有点无所适从了,到底该不该花时间在vibe coding上呢?或者说程序员改怎么面对目前AI在编程方面的应用呢?谢谢。 答: AI编程带来很多debug和维护的困难是事实,AI 辅助编程(不是vibe coding)能提升效率也是事实,但整体上来说,科学使用 AI 辅助编程一定是可以提升效率的。 为什么说不是 Vibe Coding 呢,Vibe Coding 更像是让 AI 主导,没有自己在程序、架构上的思考,那么自然难维护很多bug;如果是你自己主导,自己设计、拆分,AI 写完有 Review,那么就不会有那么多问题,你也可以更多成长。 --- 另外有点无所适从,是因为没想清楚两个问题: 1. 你自己当前的价值在哪里,AI 怎么帮你更好的体现价值? 2. 你未来的目标是什么样的 作为程序员来说,当前最直接的价值是你用自己的编程能力帮助公司开发软件,当然在这个基础上你的质量越高速度越快,价值越大。 换句话来说,公司其实不关心你是自己写出来的还是 AI 帮你写出来的,只要你的质量没问题,能快点交付就好。 所以工作中的任务,只要是在公司允许的范围,应该多用 AI 辅助编程提升效率,而且 AI 辅助编程也一定能提升效率,或多或少,如果不能就要看看是不是用法不对。 但人不是只追求给公司当牛马,还希望能自己提升,将来不会被那些 AI 用的好的年轻人替代,这时候,最好工作之余,还是提升自己,提升自己的编程能力、软件工程能力、管理能力、赚钱的能力等等 在公司不一定能很好的满足这些方面成长的需求,可以业余时间(如果能挤挤的话)做一点 side project,或者学习一些新的知识,给自己做一点事情,这过程中让 AI 辅助你,你不需要额外请老师也可以达到不错的效果。
数码荔枝
1个月前
看到关于 vibe coding 的讨论,我想分享自己的经历: 作为一个稍微有点聪明但不多、半吊子 PM、大学连 C++ 指针都没学明白的代码苦手,如果不是 ChatGPT 的诞生,我应该是永远写不出目前在用的一些效率小脚本了。 即便如此,当我试图用“自认为严谨”的方式描述新功能需求,并交给 AI 生成代码时,结果往往不尽如人意:要么直接报错,或者实现效果 vs 预期相差甚远。接下来,我只能一遍一遍把报错信息 or 差异丢给 AI,企图让它自己不断尝试改进代码。 所以,我觉得如果有人认为借助AI就能轻松变成“程序员”,那只有一种可能:他对AI交付的代码没有任何细节上的要求。比如,让 AI 生成一个 Landing Page 确实没问题,因为只要页面看起来像模像样,顺便填充了 AI 味十足的文案,就算是心满意足了。 但如果希望 AI 在生成代码时关注某些细节,或者实现特定框架下的功能,那就很难了—— 因为不懂代码、不懂框架,所以没法在正确方向提出要求,只能被迫接受一个“看起来还行”的结果。 然而,更多时候,自己都没有意识到“还需要关注某些细节”,因为也不知道究竟有哪些细节需要关注… 总之,虽然 AI 对我帮助很大,但我也清晰意识到:我这种靠 AI 点亮编程技能的人, 无论是执行力还是效率,和“靠写代码吃饭”的人没法比。 保持谦卑,保持尊重。
宝玉
2个月前
FFFFFCAT
2个月前
“带逻辑的组件会给 AI 带来额外的训练、理解 的开销” 我一直在想为什么 Shadcn / Radix UI 这一类在 ai 时代这么风靡 新开一个项目,在不限制 AI 使用 UI 组件的前提下,基本就在这两个来回选,为什么不是 antd 是首选呢? 1. 新 api 理解的困惑 假设 antd 对某个组件上了个新的功能,现在我和 ai 说要使用这个能力。 --- 1. 因为 AI 的数据里面根本不存在这个数据(AI 数据更新没那么及时) --- 2. 所以 AI 想要获取这个内容,要么从别的组件库去参考类似的用法、要么就是联网搜索,调用 tools 之类的去拿最新的文档、readme 甚至是最新的源码。 不管用什么方法,这都是一个额外的开销,还没考虑到,联网搜索搜到的文档是否是过时的,别的组件库参考的用法是否是一致的情况下,正确性也很难有保障 这点在大版本更新时候(breakchange 多)的时候更明显,你只能等待大半年,等 AI 新的训练数据给进去整好了才能理解。(早些年 gpt3.5 就经常不知道 antd 5 ,问到的都是 antd 4 的东西) 2. 上下文长度提升让准确性成为第一要义而非省 Token 不知道从什么时候开始,可能是 gemini ?也可能是 cursor?也可能是联网搜索出来的时候 现在,AI 经常会出现下面的内容 “让我帮你看看组件源码”、“我在阅读你文件夹下面的组件源码”、“好的,让我回去找找对话中你给我的源码” 好处就在于,结合了源码给出来的新功能的改造,正确性会很高,天然的用 Shadcn、Radix-ui,AI 很自然的就能读到内容,也很愿意去读。 那对于 antd 来说,因为是高度集成的,得去联网搜索拿一下,要是 antd 组件也能提供一个和 shadcn 一样的功能,把包裹 rc 的源码直接塞到项目中的 components 里面去。应该效果也差不多