#AI辅助编程

这篇文章,是我的读书笔记,也是写给那些非编程专业的人,想要通过使用AI辅助,来完成编程、来实现产品落地的怀着梦想的朋友们。 在一切开始前,我们还是需要具备一些网页开发的基础知识,在我跟着一些专业程序员使用AI工具去开发构建产品的过程里,我有一个非常大的启发,他们的实际开发流程和我们所想象的AI开发流程其实是不一样的。 举个例子:在最初我接触到AI编程的时候,没有产品需求文档,没有架构,没有项目结构,有的就是自然语言。我坚信通过沟通就可以讲清楚,可以实现项目落地。 这是非常严重的错误,本质来说就是方向错了,你不会到达目的地。 专业程序员开发,是严格讲究先后顺序,讲究关键节点的。敲重点,正确的开发顺序: 1️⃣使用AI产出产品原型图:这一步非常关键,我的理解是通过这一步,你自己作为产品的创造者,一定要非常清楚自己的产品 长什么样子 具备哪些功能: 有没有WOW Moment?放在哪个位置等等? 也是AI作为你的24小时“百变专家”员工,让你看到最初的产品长什么样子。所以这一步一定是先于编程和代码的。 2️⃣ 确定好软件的框架结构,这一项需要掌握一些开发最基础的内容,你说我不会怎么办?问你的机器猫啊。24小时“百变专家” 用人不疑,疑人不用,切记这一点,你别用着ChatGPT,心里想着Claud、Gemini。没有那个资本就别学人家“吃着碗里,看着锅里”。 3️⃣ 沟通项目结构,比如:至少要了解结构有哪些,分别是什么? 这一步干什么用的? 是告诉你:哪些代码是放在哪个文件里的?因为在后期开发过程里面,我们要尽可能精确的告诉AI工具,我们要在哪个对应的页面文件夹里做什么样的改变,这样才能让AI更好的明确问题,避免导致整个项目的损坏或者瘫痪。 4️⃣确定好以上3个核心点以后,接下来需要做的就是让AI生成你的项目需求文档,这也是我接触AI编程后才知道的,PRD文档。 这个东西就是你学车时候,上车先拉安全带,调整座椅靠背,调整后视镜,打火观察仪表台有没有异常灯亮,打转向灯并且观察周边情况后,挂档,放手刹,准备起步的整个操作规范是一样的,我这样说是希望大家能更清楚PRD的作用。 5️⃣有了这个东西以后,我们需要让AI基于这个文档,生成每一个功能的模块化开发流程,就像你教练第一天就告诉你学车的所有要领,你也无法全部掌握是一样的,你的“机器猫”也没有办法,所以我们可以直接跟AI交互,或者使用一些软件自带的Plan模式 这里可以介绍一个规范开发的GitHub开源项目叫“Spec Kit”,就可以很好的解决你开发过程里的规范问题。 6️⃣ 我们根据计划,这就可以作为整个项目的领头人,创作者,开始让AI开始从拆分开的模块一个一个实现功能了,但这里也有很多值得注意的: 1️⃣功能实现后再开始下一项; 2️⃣每一次开发小模块我们也需要有一个开发流程的闭环: 详细输入,给到AI尽可能详尽的上下文以及 需求👉开发👉检测👉发现Bug👉解决Bug需求👉修复👉检测👉产出详细项目进度并且更新文件👉Git 有人问Git是什么,我理解就是备份,但是Git可以单独开一门课来学习,是的,学海无涯。 我的总结: ❌ 一次性让AI开发过大的项目 ❌ 一次性大更该,导致项目混乱 ❌  忽视项目版本管理,这是AI编程的后悔药,你都不能保证一次性成功,何必要求别人。 ✅ 先原型、后编码,逐步细化。 ✅ 每次只聚焦一个小问题,及时预览和测试。 ✅ 善用AI的定位、解释、修复能力,遇到问题冷静交给AI。 ✅ 每次小步提交,文档和自动化脚本同步完善。 ✅ 用人不疑,疑人不用。 Vibe Coding是一项非常具备创造性的工程,它真的可以把你的一个想法,慢慢打磨称为产出级的产品,但同时,它也是一项技巧性很强的流程工作,掌握了沟通与开发技巧后,事半功倍。 我强烈建议 无论通过什么办法,学着使用规范开发先攒出5个可以运行的小东西,对于整个流程会有质的改变。
宝玉
4周前
Every 的一篇博文,记录了他们内部 6 位工程师日常是怎么使用 AI 的,可以学习借鉴一下。这 6 个人都很厉害,撑起了 4 款 AI 产品、一个咨询业务,还有一个 10 万多读者的订阅每日更新。 第 1 位 —— 走在实验前沿:Yash Poojary, Sparkle 总经理 Yash 是 Sparkle 产品的负责人,他同时开两台电脑,一台跑 Claude Code,一台跑 Codex,然后给它们下达同一个任务,看它俩谁干得又快又好。 Yash 说,在五个月前,他得先把设计图(Figma)截图,再粘贴到 Claude 里,让它“看图写代码”。现在用上了 Figma MCP 集成,Claude 可以直接读取 Figma 的设计源文件——包括颜色、间距、组件这些。 Yash 不仅在用AI,他还在优化和AI的配合。比如,他把一天切成两半: - 上午:专注执行。 这时候只用自己最熟的AI工具(Claude 和 Codex),绝不玩新东西,保证产出。 - 下午:自由探索。 这时候才开始测试各种新出的AI应用和功能。 他很清楚 AI 既是生产力工具,也是个“时间黑洞”。他用严格的时间管理,给自己建立了“防护栏”,防止自己沉迷于“调教AI”而忘了真正的工作。 第 2 位 —— 编排闭环:Kieran Klaassen, Cora 总经理 Kieran 负责 Cora 产品,他的风格是““谋定而后动””。 他的工作流核心就两个字:计划。 他会根据功能的大小,制定三种不同级别的编程计划。他会用一个叫 “Context 7 MCP” 的工具,先把最新的、最准确的官方文档和代码喂给AI,确保AI不是在“凭空想象”或用过时的知识来制定计划。 等Claude Code 交出一个完美的计划后,他再把计划发到 GitHub,然后在云端让 Coding Agent(主要是Claude Code)去执行这个计划。AI写完代码后,他会再启动一个““审查””命令,让AI自己先检查一遍,然后他再上手。 对 Kieran 来说,AI 不是一个“黑匣子”,而是一个必须在他制定的蓝图内严格执行的“施工队” 第 3 位 —— 化繁为简,拆解里程碑:Danny Aziz, Spiral 总经理 Danny 负责 Spiral 产品,他可能是这群人里最硬核的一位。 他的主战场不在花哨的图形界面,而是在一个叫 “Droid” 的命令行工具里。这个工具能让他同时调用 OpenAI 和 Anthropic 的模型。 他的工作流是: 1. 用 GPT-5 Codex 做大的任务:搭建复杂功能的框架。 2. 用 Claude 做小的任务:优化和打磨代码细节。 Danny 最有价值的一个做法是,他会在““规划阶段””花大量时间跟AI对话,让AI帮他推演一个决策可能带来的第二层、第三层后果”。 举个例子:“我要加这个新功能,但你帮我分析一下,它会不会因为从数据库拿数据的方式,导致整个App变慢?” 他用AI来辅助自己做更高维度的“架构思考”,而不仅仅是写几行代码。 > “我不再用 Cursor 了,”他说,“我已经好几个月没打开过它了。”取而代之的是,他的主界面是 Warp,可以在上面分割屏幕、快速切换任务。在它背后,他用 Zed ——一个轻量、快速的代码编辑器——来审阅计划文件和特定的代码片段。 第 4 位 —— 让流程成为唯一的“事实来源”:Naveen Naidu, Monologue 总经理 Naveen 负责 Monologue 产品,他是个“程控”。他的信条是:“如果一个任务没录入 Linear (项目管理工具),那它就不存在。” 他把所有需求和Bug都先在 Linear 里归档,然后再启动AI。他也有两套流程: - 小Bug:直接从 Linear 复制粘贴问题描述,扔进 Codex Cloud 让AI去跑。 - 大功能:在本地写一个详细的 (计划文档),把它作为和AI沟通的“唯一事实蓝图”,在命令行里一步步推进。 最有意思的是,他深度使用自己开发的产品 Monologue (一个语音转文字工具) 来口述需求、写文档、给AI下指令。这简直是““用自己造的锤子,来修自己的房子””。 他还有一套严格的审查标准:AI 自动审查 -> 自己人工对比代码 -> 查看Sentry(错误监控工具)的日志,确保Bug真的被修复了。 第 5 位 —— 钻研打磨,精益求精:Andrey Galko, 工程主管 Andrey 是工程主管,他代表了另一种工程师:不爱折腾。 他不喜欢追逐“闪亮的新玩具”。他之前一直用 Cursor (一个AI代码编辑器),觉得体验最好。但后来因为 Cursor 改了定价,他一周就把免费额度用完了,这才“被迫”换工具。 他换到了 Codex。他认为以前的 OpenAI 模型写的代码很“懒”,经常跳步骤,不如 Claude 好用。但现在的 GPT-5 Codex 已经进化得非常强,连以前 Claude 的强项——用户界面(UI)——都能搞定了。 第 6 位 —— 极致的专注:Nityesh Agarwal, Cora 工程师 Nityesh 是 Cora 的工程师,他的风格和第一位 Yash 截然相反。他追求极致的专注。他的装备极简(一台MacBook Air),他的工具也极简:只用 Claude Code。 但他用 Claude Code 的方式很特别: 1. 他会花好几个小时,先和 Claude 一起研究、制定一个巨详细的计划。 2. 一旦开始编码,他就待在一个终端窗口里,“像老鹰一样””盯着 Claude 输出的每一行代码,手指就悬在 Escape 键上,一旦发现不对,立刻中断它。 最近,他甚至故意频繁地打断AI,强迫AI向他解释“你为什么要这么写?”。 他承认,这样做效率变低了,但带来了两个巨大的好处: 1. AI 胡说八道(hallucinate)的次数变少了。 2. 他感觉自己的开发技能也在这个盘问 AI 的过程中变强了。 他意识到,自己已经对 Claude 产生了依赖,这让他很脆弱。前阵子 Claude 宕机了两天,他试了别的工具,都感觉不顺手。所以,他现在逼着自己和AI一起思考,而不是纯粹依赖AI。 --- 看来每个人用 AI 的方式都不一样,但也有一些共同点: 1. 重点不在“写代码”,而在“做规划” 没有人真正的是在“Vibe Coding”,没有说写个提示词就完事了的,都是在 AI 干活前反复的讨论,直到清楚了再动手 2. 上下文很重要 Yash 用 Context 7 MCP 的工具,确保 AI 在写代码时,能自动去查阅最新、最官方的“技术文档”。这就避免了 AI 用过时的知识(比如一个老版本的函数)来写新代码。还会用 Figma MCP,读取 Figma 的原始设计数据,让 AI 可以直接拿到准确的颜色、间距等信息 3. 工程师的角色在进化 工程师已经不再是单纯写代码,还要做计划、写提示词、审查 AI 生成的代码 4. 专注 这个问题其实我也有感触,AI 让人更难专注了,在等 AI 结果的时候去做点其他事,很快就把任务忘记了;或者 AI 工具太多,每个新 AI 工具都去试试太费时间了。像 Yash 那样,一半时间专注交付,一半时间探索。 原文:Inside the AI Workflows of Every’s Six Engineers
安仔
4周前
最近发现了一个很有意思的现象,越来越多人拿着 AI 写出来的代码找我,问我能不能帮他们把这些东西变成真正能用的产品。 这些人通常不是技术背景,可能是律师、销售或者其他领域的专业人士。他们有好点子,也用上了最新的 AI 工具,甚至真的把一个看起来能跑的 demo 做出来了。 但到了某个节点,他们就卡住了,然后开始满世界找技术合伙人或者 CTO。 这让我想到一个问题:如果 AI 真的能完全取代软件工程师,为什么这些人还需要我们? 我也一直用 AI 辅助写代码,也看了很多别人的演示。慢慢地我意识到一件事:AI 确实会写代码,但它造不出软件。 这两者之间有条很深的鸿沟。 写代码其实不难,解决一个个独立的、定义清晰的小问题,现在的 AI 已经做得很好了。但软件工程难的从来不是这个。 真正的挑战是当你要把 demo 变成产品的时候,你得同时处理几百个这样的小问题,还要让整个系统保持可维护、可扩展。 这就是那些人找上门来的根本原因。他们能用 AI 快速搭出一个功能演示,但要让它变成真正能上线运行的产品,就完全是另一回事了。 我看过他们发来的代码,说实话,所谓的"让它变得可以上线",基本上就是推倒重来的意思。 不是代码写得不对,而是整个结构、集成方式、长期维护的考量,这些东西根本就不在那些代码里。 软件工程师的核心工作其实是管理复杂度。 一个真正的生产系统做的事情,单独拆开看都不复杂,但要同时做好几百件简单的事,还要让它们协同工作,这才是真正考验人的地方。 我也不知道为什么 AI 现在还做不到这一点,可能这就是这个职业的本质吧。但至少现在,这条线还是很清晰的: AI 能帮你写代码,但把代码变成软件,还是得靠人。 工具在进化,但有些能力的门槛,并没有因此降低。
宝玉
2个月前
问:宝玉老师您好,现在一方面不断有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 辅助你,你不需要额外请老师也可以达到不错的效果。
数码荔枝
2个月前
看到关于 vibe coding 的讨论,我想分享自己的经历: 作为一个稍微有点聪明但不多、半吊子 PM、大学连 C++ 指针都没学明白的代码苦手,如果不是 ChatGPT 的诞生,我应该是永远写不出目前在用的一些效率小脚本了。 即便如此,当我试图用“自认为严谨”的方式描述新功能需求,并交给 AI 生成代码时,结果往往不尽如人意:要么直接报错,或者实现效果 vs 预期相差甚远。接下来,我只能一遍一遍把报错信息 or 差异丢给 AI,企图让它自己不断尝试改进代码。 所以,我觉得如果有人认为借助AI就能轻松变成“程序员”,那只有一种可能:他对AI交付的代码没有任何细节上的要求。比如,让 AI 生成一个 Landing Page 确实没问题,因为只要页面看起来像模像样,顺便填充了 AI 味十足的文案,就算是心满意足了。 但如果希望 AI 在生成代码时关注某些细节,或者实现特定框架下的功能,那就很难了—— 因为不懂代码、不懂框架,所以没法在正确方向提出要求,只能被迫接受一个“看起来还行”的结果。 然而,更多时候,自己都没有意识到“还需要关注某些细节”,因为也不知道究竟有哪些细节需要关注… 总之,虽然 AI 对我帮助很大,但我也清晰意识到:我这种靠 AI 点亮编程技能的人, 无论是执行力还是效率,和“靠写代码吃饭”的人没法比。 保持谦卑,保持尊重。
宝玉
3个月前
FFFFFCAT
3个月前
“带逻辑的组件会给 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 里面去。应该效果也差不多