前端不“死”

120 阅读8分钟

通过专注于LLM所缺乏的技能,‘前端设计工程师’可以适应被人工智能颠覆的市场。

 

前端网站开发的“钱途……没了”。这是 AI 与软件开发领域的知名人物 Santiago Valdarrama 的观点。当然,并非所有人都认同这一说法——看看他最近在 X(原 Twitter)上掀起的舆论风暴就知道了。不过,Valdarrama 的观点有一定道理。他对开发者群体表示:“两年前,大家都愿意砸钱让你做网站。现在那些客户已经不再这么做了。”

 

这些客户去哪了呢?

 

毫无悬念,他们选择了与LLMs合作。更准确地说,是选择了那些懂得如何使用 LLMs 构建产品的前端开发者。正如我之前提到的,这种转变目前对资深开发者的好处最大,但实际上它也有可能惠及每一位前端或全栈开发者。关键不是恐慌,而是去适应。

 

大型语言模型这群“野蛮人”已兵临城下。

 

人工智能编码工具的进步之快,几乎无法用言语来形容。开发者 Valdarrama 指出:“我们几乎每周都会迎来一个全新的模型,它远远超越了我们过去见过的一切。”他感叹道,大型语言模型如今正在解决“几年前谁都——我是说没有任何人——认为不可能解决的问题。”他接着说:“大型语言模型已经突破了我曾设想过的所有限制”,以至于“现在你要是还雇佣未经训练的人来写代码,那简直是疯了”,因为 AI 已经把参与编码的门槛提高到了前所未有的高度。

 

即便是经验丰富的工程师也对 AI 的进步感到惊讶,更不用说初级开发者为何担心自己会被自动化取代了。

 

如今的大型语言模型,确实可以按需生成前端代码。Vercel 的 CEO Guillermo Rauch 指出,从 GPT-3 开始,它就“非常擅长使用 HTML 和 CSS 进行设计,也能编写 React 代码”,这预示着 Web 开发方式即将被彻底颠覆。随着 GPT-4 及其他更先进模型的出现,这一前景更加强烈。

但这并不意味着前端开发者(至少是有经验的开发者)就会被淘汰。

尽管 AI 的演示效果令人惊艳,但当前的大模型仍远不能替代熟练的前端工程师。那些炫目的例子通常是生成一个小型应用或静态页面,而在真实的生产环境中,前端开发与项目上下文密不可分——而这恰恰是 AI 做不到的地方。正如 Ofer LaOr 所说:“每个团队和项目之间的差异、使用工具、框架、库和 CSS 的组合……几乎是无限的。”而 LLM 对于你的项目栈和样式规范则“一无所知”。换句话说,AI 也许能生成一个通用的 组件,但将其整合进你应用独有的架构中,仍然是人的任务。

即使只谈编码本身,LLMs 的准确性问题也早有文献记录。它们常常生成看起来很有信心、但实际上存在细微漏洞或疏漏的代码。前端教育者 Josh W. Comeau 指出:“LLM 无法验证它的假设,也不能测试自己的结论。它无法确认自己说的是否正确。”不同于人类开发者,AI 并不真正理解代码的行为或 UI/UX 的含义;它只是根据统计模型预测下一个最可能出现的词。因此,“AI 输出中总是会存在某种程度的误差”,Comeau 总结道。

对一个非程序员而言,试图完全依赖 AI 构建应用,隐藏的错误无异于埋下的地雷。“如果你不是程序员,你根本不知道哪些部分是对的,哪些是错的。”Comeau 指出。因此,正如许多开发者认为的那样:“想要高效使用 AI 进行开发,你需要足够的经验来识别哪些内容是 LLM 输出的垃圾。”生成一个 50 行的小 Demo 是一回事,但构建和维护一个拥有数万行代码的复杂 Web 应用,那是完全不同的挑战。

 

或许大型语言模型终有一天能做到,但现在还远未到那个程度。

 

更多是解决问题,而不是“打补丁”

 

这一切都指向对前端开发者角色的一种全新理解。如果基础 UI 代码的编写逐渐商品化(即任何人都能用 AI 快速生成),那么开发者的真正价值将体现在高层次的问题解决能力、创造力和打磨品质上。

正如 Valdarrama 所指出的:“编码只是我们与计算机沟通思想的方式,但它从来不是最难的部分。”

真正难的是:你要构建什么?为什么构建?怎么优雅地构建?那些被称为“顶尖工程师”的人,是因为他们始终比别人更擅长三件事:

找到正确的问题;

以合理的方式界定问题,使得解决方案变得自然而然;

将方案打磨成优雅、可维护的设计。

而这些,正是当前 AI 无法模仿的人类优势——因为 AI 缺乏真正的理解力与直觉。

 

前端开发本就包含大量“粘合剂”工作:整合 API、微调设计、厘清模糊的产品需求……这些都是“高度依赖人类判断的问题”,需要“由人类操作者来驱动”,正如 Ofer LaOr 强调的。

举例来说,一位典型的高级前端开发者,可能会接到一个设计师画出的“不可能实现”的 Figma 设计稿,然后在技术约束与用户体验之间来回斡旋,反复打磨,使其真正可落地。这种在“理想设计”和“现实实现”之间的微妙博弈,是当前任何 AI 都无法胜任的。

展望未来,也许初级开发者,甚至非开发人员,能借助 AI 生成 UI 组件。但真正能把这些组件编排成一个结构清晰、性能可靠、体验良好的应用系统的人,依然是那些具备判断力与架构能力的高级前端开发者。

 

如何应对AI

那么,前端开发者应如何应对这个变化中的市场?

首先,要拥抱 AI 工具,而不是回避它们。正如 Valdarrama 建议的那样,“尽可能多地学习 AI,并了解如何使用它来写出更好的代码。” 那些将 JavaScript 或移动框架技能与提示工程(prompt engineering)能力结合的开发者,将远远领先于那些坚持手动编码的人。从实际层面来看,这意味着可以在开发过程中使用 Copilot,在编辑器中集成大语言模型(LLM)以快速修复问题,或借助 AI 生成初步的 UI 草图,然后进行人工优化。

第二,要专注于 AI 无法自动化的基本功。这包括对用户体验设计、可访问性、性能调优和架构原则的理解。AI 可能会为你生成一个导航菜单,但是否具有良好的用户体验、是否符合网站的性能预算,还得由你来决定。提升与设计师协作的能力也至关重要。能够与设计师“对话”(甚至使用 AI 设计工具)的前端开发者,将在把视觉转化为现实的过程中具有极高价值。我们已经看到前端岗位的招聘要求从“前端开发者”演变为“前端架构师”。要积极拥抱这种转变。

第三,要培养对 AI 输出的“批判性眼光”。把每一个 AI 提议当作起点,而不是最终答案。对于初级开发者来说,这意味着不能跳过正确的编码实践、测试和调试的学习。事实上,初级开发者如今可能需要更快地学习:那些过去作为入门练习的基础任务(例如把 PSD 切图成 HTML 或接简单表单)如今可能会被 AI 完成,因此你将更早面对审查与优化 AI 生成代码的挑战。寻求导师指导和代码审查,加快你识别错误的能力。承担那些验证和打磨 AI 代码的基础性工作——那正是你可以提升 AI 无法胜任的技能的地方。

最后,要对前端开发的未来方向保持开放心态。这个领域很可能将变得更加跨学科。现在已有“设计工程师”(designgineer)概念的兴起,这是一类由 AI 工具赋能的设计师与工程师的混合体。我们看到一些非传统开发者通过语音或可视化工具创建网站。这种前端创作的民主化,并不意味着你的专业能力变得不重要了,反而意味着你可能会带领更大的创作者群体(包括 AI)共同实现创意。你的角色可能将更多地转向组件整合、编写高层逻辑以及把控质量。前端开发的市场并没有萎缩,而是岗位定义正在变得更加广泛。在 AI 翻译器、协作工具和测试工具的帮助下,一个全球分布的开发者团队可以无缝协作。

实际上,全球开发者的池子正在扩大,而你作为个体,也比以往任何时候都有更多机会去构建有影响力的产品——前提是你愿意保持适应力。

原文:www.infoworld.com/article/402…