Cell by Cell
关于年轮

技术随笔

前端已死

我没有系统学过 JavaScript,却在一周里借助 Claude Code 和 Codex 重构或新建了五个个人网站。前端并没有从网页中消失,但它正在从一个必须由专门职业完成的工作,变成一组可以被 Agent 调用的能力。

  • 发布时间
  • 预计阅读7 分钟
  • 语言ENZH
  • AI
  • Frontend
  • Claude Code
  • Codex
  • Agent

过去几年,我一直依赖 NotionNext 和 HugoBlox 维护自己的几个个人网站。

它们都是很好的项目。没有它们,我可能很早就放弃了建站这件事。但一个为许多人服务的项目,和一个只为自己存在的网站,终究不是同一种东西。

上游更新并不总是稳定,项目结构偶尔会发生细微变化,主题为了照顾不同用户留下大量我用不到的东西,Notion API 的变化也可能突然传导到自己的页面。每一次都不是什么无法解决的大问题,可它们叠在一起,会产生一种持续的别扭:网站名义上属于我,真正决定它如何运转的,却是许多我并不控制的东西。

于是我想,不如让 Agent 试试看。

最初并没有多大的野心。我只让它做一个静态 HTML demo,看看自己描述的页面能不能成立。结果出来时,我确实大受震撼。那不是一个可以直接上线的成品,细节也远谈不上完美,但它第一次让我意识到:过去因为不会前端而根本不会考虑的方案,现在至少可以开始了。

接下来大约一周,我通过 Claude Code 和 Codex,完成了五个静态站的重构或新建,也把原来的内容和工作流陆续迁了过去。

我以前没有系统学过 JavaScript,现在也不能说自己懂了多少前端。五个网站仍有不少毛刺,有些响应式细节需要继续调整,有些实现回头看也未必足够干净。但它们的视觉、内容组织和构建流程都开始按照我的习惯生长,而不是按照某个通用主题预留给我的插槽生长。

更奇怪的是:这一次,我对结果相当满意。

我没有学会前端,但网站已经做出来了

过去,建立个人网站有一个很清楚的交换。

使用成熟主题,我可以绕过大部分开发工作,但必须接受它的结构、审美和更新节奏;从头搭建,我可以获得控制,却要先补上设计、前端、构建和部署的一整套能力。

Agent 没有彻底取消这个交换,却把它压缩了。

我仍然需要决定网站是什么:它给谁看,首页先说什么,文章怎样排列,一张封面应该占据多大空间,中文和英文怎样共存,哪些自动化值得保留,哪些看似方便的功能只会增加噪音。

但决定之后,我不再需要亲手跨过实现中的每一道门槛。Agent 可以阅读已有项目,寻找相似文件,修改样式,迁移内容,运行构建,检查测试,再根据结果继续修正。它会犯错,也会做出一些一眼就能看出“不像我”的东西;可这些错误大多可以指出、重做和回滚。

我没有因此变成一个前端工程师。

更准确地说,我第一次不必先成为前端工程师,才有资格拥有一个量身定做的前端。

两年前,人们还在认真争论前端会不会死

过去两年,经常可以看到几种熟悉的说法。

一种说,AI 将给软件行业带来巨大冲击,程序员会被替代,而前端很可能首当其冲。另一种则反驳,模型只能做漂亮 demo,一进入真实项目就会迷路;它不理解需求,不懂审美,写出的代码无法维护,更不可能承担一个长期运行的产品。

双方都把这件事当成一个仍在逼近的未来。

但到了今年,我已经很少再看到人们热烈争论“AI 会不会取代前端”。这当然只是我个人的信息流,不是一项就业统计。前端岗位没有在某一天集体消失,优秀工程师能完成的复杂系统,也远不是输入一句话就能稳定得到的。

可我自己的五个网站又明明摆在那里。

它们没有证明前端已经不需要知识,而是说明另一件更难被职位数量捕捉的变化:过去只能由前端工程师完成的一部分工作,已经可以被一个不懂前端的人发起、检查并交付。

职业的变化未必先表现为所有人同时失业。它也可能先表现为任务从职业中脱落:先是一个落地页,然后是一套组件,再是内容迁移、响应式调整、构建配置和部署。网站仍然需要这些工作,只是它们不再必然需要一个叫“前端”的人逐项完成。

前端没有从页面里消失。

它正在从一种职业的专属劳动,变成许多人都能调用的一组能力。

设计和代码失去了先后顺序

如果 AI 仍然只是聊天框里的一个模型,这五个网站大概不会出现。

Command、MCP 和 Skills 让 Agent 可以调用工具、进入项目,但那已经是去年的故事。今年真正松动的,是产品原本清楚的制作顺序。

传统的网站制作有一条大致固定的流水线:先讨论需求,再做设计稿,然后交给前端实现。即使中间不断返工,设计和代码仍然是两个阶段,设计师与工程师也因此拥有各自清楚的位置。

我这次做网站,根本没有走这条路。我不是先完成一套设计,再把它翻译成代码,而是从一个静态 HTML demo 开始,在页面已经可以运行之后,才逐渐决定它应该长成什么样。设计不是开发之前的一张图,而是和代码一起被来回修改的东西。

这一年里,Claude DesignCodex 与 Figma 的连接都在把这件事做成产品:想法可以从一句提示、一张设计稿或一份已经在跑的代码任意一处开始,不必先确定此刻究竟属于设计阶段还是开发阶段。

当设计和实现可以在同一个循环里往返,最先消失的未必是某个具体技能,而是夹在两者之间的那道交接。

第一版不再被当成答案

过去的 AI 前端最容易制造震撼,也最容易在震撼之后露馅。输入一句话,几十秒出现一个漂亮页面;真正点击几下,按钮没有反应,布局经不起内容变化,所谓功能只做了一个壳。

现在最重要的进展,不是第一版变得更漂亮,而是第一版不再被当成答案。

一个 Agent 负责生成,另一个 Agent 打开真实页面,像用户那样点击、截图、检查功能,写出批评,交回去重做。同一个页面反复进出这个循环,直到挑不出明显的毛病。连“这看起来很有 AI 味”这种原本只能由人抱怨的事,也开始被拆成可以逐条检查的东西。

审美当然没有被解决,模型还会做出大量平庸的页面。但审美批评开始拥有和代码测试相似的形状:有反例,有检查项,有独立的评估者,也有不通过就继续修改的循环。

这很接近前端开发中最日常的部分:写一点,打开浏览器,看哪里不对,再回去改。过去模型只替代了“写一点”,现在它开始吞掉整个循环。

需要说明的是,上面这些前沿的东西,我这一周一件都没用上。我用的只是最普通的 Claude Code 和 Codex:闭环里负责挑错的那个角色,由我自己充当,一遍遍打开页面说“这里不对”。门槛倒下这件事,并不需要等到最好的工具普及。

这也是前端为什么排在最前面。页面就在眼前,代码可以运行,构建可以测试,部署可以回滚。即使不懂每一行代码,我也能看出按钮有没有出现、文字是否溢出、网站是不是自己想要的样子。结果越容易观察,生成、评估和修正的闭环就越容易成立。

设计已经进入同一个循环。医疗会慢一些,不是因为它对 AI 免疫,而是因为一次错误无法像页面一样刷新和回滚。各个职业真正的时间表,或许不在于它有多高深,而在于它能否形成一个足够便宜、足够可靠的反馈闭环。

死掉的是那道门槛

当然,人还在。

这五个网站为什么存在、应该呈现什么、哪些结果可以接受,仍然由我决定。Agent 不知道某个设计为什么“不像我”,除非我把这种不满意说出来。

但人的存在,并不能挽救原来那条分工。

这一周里,我同时做了甲方、产品、编辑、设计审核和测试。Claude Code 与 Codex 在它们之间穿行,把我的判断变成文件、页面和构建结果。以前需要在几个人之间传递的工作,现在被压进了一个人与几个 Agent 的来回对话里。

专业能力不会消失。真正复杂的产品仍然需要真正懂前端的人,高水平的设计和工程判断也会继续稀缺。但“专业仍有价值”和“职业不会收缩”从来不是一回事。相反,正因为一个懂行的人能够带着 Agent 做得更多,剩下的人才可能更少。

所谓“前端已死”,并不是说世界上再也没有前端岗位,也不是说前端知识从此毫无价值。一个职业的死亡,不需要等到最后一个从业者离开。只要它不再是完成这类工作的必要入口,那道门槛就已经倒下了。

对于我这样只想拥有几个个人网站的人来说,前端作为门槛,已经死了。

我用一周和五个网站跨过了它。它们还不完美,但已经足够让我无法再把 AI 的冲击只当作关于未来的争论。

前几天,我在 X 上看到有人感叹:奇怪,为什么今年已经很少有人再说“前端已死”了?

下面有一条回复:

死人是不会说话的。