最近我使用AI完成了一个较为大型的全栈项目的开发。我使用VSCode Copilot + Claude 4模型,仅靠提示词、部分手动修改的错误和代码审查,在两天半的时间里,完成了一个代码量2w+的网盘系统,90%的代码都是由AI完成的!
最近我使用AI完成了一个较为大型的全栈项目的开发。
我使用VSCode Copilot + Claude 4模型,仅靠提示词、部分手动修改的错误和代码审查,在两天半的时间里,完成了一个代码量2w+的网盘系统,90%的代码都是由AI完成的!
仓库:https://github.com/healwrap/yunxia (欢迎大家点点star)
首页
任务队列管理页面
文件管理页面
支持上传文件
新建文件夹
修改文件名
删除文件
分享文件
下载文件
分享文件管理页面
增删改查
下载分享文件
回收站
项目的背景如下,主要是提供给AI的上下文信息,同时也是自己梳理功能点应该注意的地方。
具体文档在飞书知识库中,供我和我的开发伙伴使用,这里简单提一提。
网盘系统对标的是市面上常见的产品,如:百度网盘、夸克网盘等等系统。目标是实现它们所包含的基本功能、甚至在某些功能上,体验要优于它们。
网盘系统的需要实现的功能大概包括
文件管理
分享管理
回收站管理
下载管理
空间管理
具体细节不展开了,这都是很简单的功能,百度或者AI都能给你详细的设计
我个人是熟悉Vue偏多的,最近想要全面掌握React、NodeJS后端等等,给自己多增加几项技术栈,于是我选用的技术栈如下:
前端: React + TypeScript + Vite + Ant Design + TailwindCSS + Zustand
后端: Koa + TypeScript + TypeORM + PostgreSQL
WebAssembly: 自定义哈希计算包(仅作演示,实际项目使用hash-worker包)
认证: Clerk 用户管理系统
这里的细节也不需要纠结,本文主要是针对AI Coding细节进行讲解的。
还需要针对项目中的一些细节做出大概定义(后续可以让AI给你完善),如
数据库表设计
文件秒传功能设计
断点续传功能设计
前端基本架构设计
后端基本架构设计
等等...
注意:这些都是可以让AI进行完善的细节,但是你必须思考清楚,自己这个项目应该朝着一个什么方向编写。否则AI极其容易写出混乱、错误的逻辑。
很明显,当今任何AI产品都无法完全做到,用户输入一个提示词,AI完完全全自主完成所有功能,并且按照用户预期想法完成,这是目前做不到的。
如何让AI工具为我们所用呢?我的经验如下:
如:Claude Code、Cursor、Trae、Kiro、Augment Code、VSCode Copilot等等
Copilot 早期真的很难用,但是随着近期更新,它也比较好用了,主要是靠它可以通过Github学生包免费使用,本项目也基本90%的编码都是通过它完成的
但是你要说它好,肯定还是不如其他一些更强的工具的,只能说够用。
如:Claude 3.7/4、GPT5等等
选择模型这一块,也有讲究,Claude模型虽然强大,但在处理一些小问题时,3.7 4.0 的效果不如 3.5,可能前者是专为大型项目而生,再简单的功能,也会写出一堆精致的废物代码出来,而3.5在简单需求上的处理就远好于前者。
这里我不得不感慨,Claude模型的编码能力、逻辑思维能力之强大,简直超过其他同类型模型一大截。
从今年三月左右我使用Claude 3.7模型完成了一个公司内使用的浏览器插件,到如今使用Claude模型几乎完成80-90%的代码编写,AI的强大让我感到震惊且恐慌。
让AI能够正确理解你的指令
我这里参考的是Copilot文档中提到的技巧 Prompt engineering for GitHub Copilot Chat - GitHub 文档
让AI能够理解你的项目
上下文工程原本指:精心设计输入给大模型的内容。意思是因为大模型的上下文长度有限,当我们希望大模型理解海量内容时,我们需要精心设计好输入给大模型的内容,既不超过上下文长度,又能让大模型能够理解内容。
在我本次的实践中,遵循了以下原则:
提供背景:我们需要提供给大模型我们项目的大概情况,如项目大概是干什么的、技术栈是什么、一些大概的功能交互是怎么样的、数据模型是怎么样的、开发方式是怎么样的,等等。这个一般是让AI生成一个提示文件,如Copilot的“生成指令”功能,生成的copilot-instructions.md。用户每次提问,编辑器都会自动带上此文件,让AI可以准确回答问题,并减少出错概率。
提供文档:当我们使用一些冷门的库时,AI可能会因为缺少训练数据导致回答错误。这个时候我们可以使用工具给AI提供文档。如context7 MCP、编辑器默认的提取网页工具、手动粘贴文档等等
拆分对话:我们需要根据自己对需求的理解,每次只在一个对话中完成需求,而不要在一个对话中频繁对话,导致上下文不足。
压缩对话:当我们需要在一个对话中完成时,且上下文长度不足时,使用压缩对话功能(但是前提是不要在需求完成到一半的时候压缩,这样会导致AI对任务识别不清楚)
Todo任务清单:当我们完成一个复杂的需求时,需要使用任务清单工具,让大模型无论上下文长度多长,都能清晰知道要干什么,而不是干了一会儿之后忘记要干什么了。
我这次的全栈项目,使用的工具如下
dbhub MCP,可以让AI操作数据库,在全自动这方面,以及问题排查方面会更好
context7 MCP,可以让AI读取最新库的用法,比如此次项目中使用Antd、clerk、hash-worker、AssemblyScript等等技术栈,我都尽量让AI查询用法后再编码,防止因为训练数据的问题导致回答出错
大模型的图像识别能力,有的情况下,我们可以直接截图给模型,让模型理解图片并修复问题
同时,工具不是越多越好,过多的工具会占用模型上下文,导致模型变笨,你需要适当减少工具的使用,让模型回答更精准。
大模型支持多模态能力,比如图像识别,你可以让AI多帮你做很多事
你可以画产品UI,模型可以根据你的图片还原出一个类似的页面
你可以复制一些UI网站的图片,模型可以仿照它完成功能
使用便于AI编程的语言和框架,比如
原生HTML+原子类名等等,AI几乎完美适配这种编程方式。尽管写出的代码让人无法理解和维护,甚至因为缺少代码拆分,AI都可能难以维护
React框架,因为它非常流行、且生态庞大,所以训练数据中会包含大量与此相关的内容,所以编码能力会更强
使用便于AI Coding的一些库,比如
Tailwind CSS,这个库简直是为AI而生,他可以使用少量代码生成界面(尽管这些原子类名对人类不友好,但是对AI很友好)
shadcn等Tailwind CSS构建的UI库
减少lint、甚至不要开启
eslint --fix命令修复文件问题之后再手动修复TS规则不要过于严格
在AI项目中,TS的类型提示绝对是友好的,不仅是让AI写出便于人类理解的代码,同时也可以帮助AI检查出它输出的代码的一些问题(比如库、方法找不到、类型不兼容等等)
但是过于严格的TS规则会导致AI编码困难,且需要频繁修复问题
指令文件可以让AI理解项目,并选择合适的命令进行开发调试,这个功能类似Claude Code 的 init
我们大部分时候没有办法给到AI十分准确的计划,AI可能也不清楚我们要干什么,会导致实际干的和预期不符合,我们就可以让它先生成简单的计划方案,审核后在让它创建任务执行。
待办工具可以让AI不容易产生偏移,准确完成需求
如果你更希望让AI全自动完成需求,并一键部署,可以试试类似v0等的平台
AI全自动构建网站,支持如下功能
通过对话构建网站
通过图片或者figma还原UI
在项目的基础上进行修改
一键部署项目
支持构建全栈项目
比如使用一张来自mobbin的UI稿截图,v0就能够全自动构建一个页面,页面的还原度还是很高的
同时,还可以将生成的代码,直接在本地运行
你可以利用AI生成静态的HTML页面作为草图。
但是吧,我个人觉得没啥用,因为AI生成的都是“蓝紫蓝紫”的界面,并不好看
如今的AI已发展到让人难以想象的地步了
这次只是简单需求,AI编写的代码其实也有很多问题,在公司实习时,我其实也尝试用AI写代码,奈何业务过于复杂,AI既没有训练数据,也理解不了,导致其实AI的帮助很小。
但是一些中小项目,完全可以让AI替代人来编写代码了,不局限于只是修修Bug。
对于前端来讲,AI的冲击太大了... 随便一句提示词,就能完整复刻一整个网站。
今天是简单Demo,可能明天就可以正式替代程序员干活了....
往期文章
AI Coding 最佳实践-从零到一全栈项目编写探索 AI 辅助编程全流程:从提示词优化到多工具协同,实战演示如何提升 - 掘金
将你的copilot转为OpenAI兼容服务目前各大AI 编辑器的订阅价格都比较高,想使用更强的claude模型,只能每 - 掘金
AI Coding 最佳实践-从零到一全栈项目编写探索 AI 辅助编程全流程:从提示词优化到多工具协同,实战演示如何提升 - 掘金
掘金文章救星!我用Coze打造AI工作流自动生成爆款标题和封面手把手教你搭建Coze工作流,解决文章标题难产和封面设计痛 - 掘金
LangChain:大模型开发框架的全方位解析与实践本文深入介绍了开发大模型框架 LangChain,包括其核心功能、接 - 掘金


本文作者:pepedd864
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!