对,我又改博客了。
之前的主题要靠封面图撑场面,找不到合适的图就乱糟糟的。我有 100 多篇老文章,没精力一篇篇回去补图,那就换一个不需要图的设计。
顺带把 NextUI 也删了。不是因为它不好,是因为根本没用上——所有用到的地方自己写三五行 Tailwind 就够了,留着只是个包袱。
之前一直用 Cursor,这次换成了 Claude Code 和 Codex。
刚开始完全不知道怎么用。Cursor 的方式很直觉,把文件拖进去,告诉它改哪里,看着它改。Claude Code 是你扔一个任务,它自己去读文件、改代码、跑构建,你不用盯着。
适应之后发现更顺手。任务扔出去,自己去做别的,等它搞完了来看结果。甚至可以同时开几个项目跑。以前是"我在改代码",现在是"我在验收"。
设计这件事折腾了好几轮。
一开始跟 Claude 说“我想完全重构首页,改得更大气,高级,精致,有品味的感觉,具体风格你看着来,别的页面不动 项目情况参考 AGENTS.md”
改完发现没啥变化。。
说了三四轮没对上,我换了个说法:「你是一个欧洲范儿的设计师,知道 CSS 禅意花园吗,最好看不出来是同一个网站。」
这次它给了 A、B、C 三个方向让我选。看到 C 直接"哇塞",惊艳,一眼就对了——索引式排版,像印刷杂志的目录页,干净,有结构,没有一点多余的东西。
我问它为什么之前总是在原有基础上改,它说先读了现有代码,所以被现有结构锚定了,换皮没有换骨。然后它说,你与其说"更欧范儿",不如说"参考 Le Monde 的目录页",比"欧洲风格"有效十倍。
Le Monde 是什么我不知道。Monocle 是什么我也不知道。但它把三个方向摆在我面前,我知道哪个好看。
UI 搞定之后,让它列了一下现在博客有哪些问题——SEO、性能、界面,一口气列了 15 条,然后一起修掉。
文章页之前分享出去是空白的,没有 description 没有 Open Graph。sitemap.ts 和 robots.txt 没有。lang 写的是 en,博客主要是中文。
首页每次查文章列表,把每篇文章完整的 content 字段都拉回来,就为了截 120 字摘要。Archive 页全量加载所有文章,不分页。代码高亮初始化有竞态,Markdown 渲染结果没有缓存。footer 为了读一个 pathname 被做成了 Client Component。
都改了。
然后遇到一个让我无语的 bug。
给文章页加了 generateStaticParams,构建时预渲染所有文章。跑起来直接崩:
FATAL: sorry, too many clients already
把报错给它看,它分析了一通,说根本原因是缺连接池,需要加 PgBouncer 或者 Prisma Accelerate,这是"基础设施层的问题"。
我:125 篇文章,占 100 个数据库连接不够用,这像话吗,应该限制并发 worker 或者连接数。
然后它找到了真正的原因。prisma/db.ts 里有一行:
if (process.env.NODE_ENV !== "production") globalForPrisma.prisma = prisma;
单例只在开发环境生效,生产构建时每个 worker 进程各自 new 一个 Prisma 实例,每个实例默认连接池按 CPU 核心数算,13 个 worker 乘下来轻松超过 100。
加一行 connection_limit=3,把那个条件判断去掉,问题解决,125 篇全部预渲染。
从 2021 年 GitHub Copilot 内测开始用,那时候它只会给我补全 if/else,猜变量名。
2024 年中,能做简单的独立任务。2024 年底,Python 没问题,Rust 完全跑不起来。2025 年中,Rust 也能跑了,但每次我都会仔细 review,一行一行看。
现在,博客这种项目,代码我基本不看,改完了在浏览器点一点,感觉对了就行。把验收标准和原则告诉它,剩下的它来做。
变化很快,我几乎每天跟身边人讲 AI ,让所有人用 AI 哪怕豆包。
以前都说就差一个程序员,现在开发已经不值钱了,重要的是你的想法和品味。
About this article
- Author
- Lerry
- Published
- 2026-02-25
- License
- CC BY-NC-ND 4.0