项目育儿园
Source: Dev.to
给 Cursor 你的专属模式作为复制来源
AI 在复制模式方面相当擅长,但在发明新模式上就不那么行了。给它一个空白页并让它生成“服务层”,它会给出一些通用的东西……可能还能用,但并不是你自己的实现方式。把它指向已经按你喜欢的方式工作的代码,它就会复制那个。
关键洞见
事后看来这很显而易见,但我花了一段时间才发现。我一直从零开始新项目,描述我想要的功能,得到的结果还算可以。与此同时,我已经有了几个经过时间打磨的、符合我习惯的项目,只是一直闲置着。
为项目创建符号链接
让我恍然大悟的技巧是把已有项目的符号链接放到与新项目同一个父文件夹下:
mkdir ~/projects/nursery
然后在 Cursor 中打开那个文件夹。现在当我说“像 flow‑myna 那样构建 auth context”或“使用和 leveloh 相同的 Alembic 迁移设置”时,Cursor 能看到这些文件夹/文件。我不确定其他代码‑agent 的设置是否也能这样使用,但这个技巧让在 Cursor 中管理这些内容变得很容易。
关于符号链接还有一点好处:Cursor 在编辑符号链接文件夹中的文件前会请求确认。因此你的参考项目受到保护……AI 可以读取它们,但不会意外修改;如果你真的想让它们被修改,只需接受即可。
我把这个文件夹当作新项目的 nursery(苗圃)。其他项目并不是模板……它们只是恰好可见的真实工作代码。它们各自朝不同方向演进,满足各自的需求。有的项目有认证,有的没有;有的实现了支付处理,有的只是静态站点。
为什么它比模板更好用
这与维护一个模板仓库不同。使用模板时,你需要预判将来会需要什么,并把它抽象成可复用的东西。这需要大量前期工作,而六个月后你的偏好可能已经改变。
在这里,根本没有需要维护的东西。每个项目就是它自己。当我开始新项目时,我会告诉 AI “看看另一个项目是怎么处理 X 的,做类似的事情”。它会完成复制,并根据这次实际需求进行适配。
我发现这比把 AI 指向某个流行的入门模板更有效。当代码是我的时,我已经熟悉其中的模式,知道为什么会这样组织,出问题时也知道该去哪里查找。
而使用别人的模板时,你得学习他们的约定,同时还要构建自己的东西。AI 并不知道哪些部分是关键负载,哪些只是个人偏好。所有东西都已经熟悉时,使用起来就更轻松。
技术栈与示例项目
我的技术栈概览:
- 前端: Next.js 14 + Tailwind
- 后端: FastAPI + PostgreSQL
没有什么特别之处……只是我之前用过并且有可运行示例的技术。
我已经在一个域名上酝酿了多年的一个简单指标服务想法——用户 POST 一个图表名称和数值,图表会自动显示。感觉像是一个需要数周才能完成的项目,于是一直拖延。用了上述方法后,整个过程大约用了 8 小时,分散在几天内完成。该服务位于 spikelog.com,欢迎查看。
结论
我不确定这是否适用于所有人的工作流,但核心思路似乎是合理的:你长期积累的模式值得复用,而让它们对 AI 可见是实现这一点的简便方式。今后我将以这种方式启动我的新项目。