前端视界:前端搞基建-工程化&AI赋能
此次分享主要介绍前端工程化全景图,从
需求规范、开发联调、测试优化等多个阶段展开,多角度思考如何进行前端工程化及AI赋能提效。
引言
结合近一年的系统开发经验,踩过的坑、流过的泪,并结合现在大火的大模型+、AI赋能,让我不得不去思考怎么去做前端的企业级工程化?如何更高效的搭建前端基础系统?
说到前端工程化,其目的主要是解决以下几个痛点:
- 重复劳动:代码规范、部署流程等
- 协作低效:接口联调、文档缺失等
- 质量失控:性能劣化、线上事故等
其价值主要是能够让前端团队:
标准化流程、自动化提效、AI智能化赋能- 降低开发成本、提升开发效率
- 提高代码质量、减少bug风险
企业级前端工程化核心阶段划分为:
需求规范 -> 开发联调 -> 测试优化 -> 构建部署 -> 运维监控,其核心目标是:
- 稳:高可用、可回滚
- 快:敏捷交付、自动化流水线
- 省:低成本工具链、资源复用
🎯 需求规范阶段
需求规范阶段是企业级前端工程化的基石,其核心目标可概括为:“建立统一标准,预防潜在风险,提升协作效率”。具体拆解如下:
统一标准:消除协作摩擦
- 代码规范统一:通过
ESLint + Prettier + Husky强制约束代码风格,避免因缩进、命名等细节争议浪费开发时间(多个开发)。 - 协作流程标准化:明确
Git分支策略(如简化版Git Flow)、Commit信息格式(Commitizen规范),确保代码历史可追溯。 - 避免开发者随意提交
fix bug、update等无意义信息(利用一些AI插件检测等)
文档沉淀:打破信息孤岛
- 需求文档结构化:使用
语雀/飞书文档将业务需求拆解为技术方案,明确功能边界和验收标准。需求文档模板化(包含背景、原型、功能等模块)。(原型图可借助AI生成) - API与设计稿同步:通过
Apifox维护接口文档,后端未完成接口时,前端可直接基于Mock数据开发,同时做好接口描述及字段标注,减少前后端沟通歧义。基于接口文档可通过AI模型直接生成mock数据和接口调用。
💡 开发联调阶段
开发联调阶段是前端工程化的核心实施环节,其核心目标是:“高效协作、减少阻塞、保障代码质量”,确保前后端、设计与开发无缝衔接。以下是具体拆解及落地方案:
基础框架搭建:统一技术底座
为团队提供稳定、可扩展的开发基础,避免重复造轮子。
-
框架选型:
- 轻量快速:
Vue3+Vite(适合中小项目,开发体验极佳,目前我们部门还停留在vue2,后面新系统可以尝试使用vue3+vite,飞一般的感觉)。
- 轻量快速:
-
AI赋能场景:
Cursor生成基础框架配置(如输入“创建Vue3 + Vite项目”)。通义灵码分析项目需求(优化代码、问题分析、解释代码、生成注释等等)。
物料库管理:提升复用率
通过组件、工具函数、模板的复用,减少重复开发。
-
组件库:
- 企业自研组件库(基于
Ant Design/Element Plus二次封装)。
- 企业自研组件库(基于
-
封装工具函数:
- 使用工具函数库(如
lodash/dayjs)。
- 使用工具函数库(如
-
AI赋能场景:
- 即时AI将
Figma设计稿转为Vue/React组件代码。之前在总体部研究的图转码,如v0.dev/等 - Cursor定制化业务通用组件,目前结算管理系统以及封装了若干组件,后面可看看效果。
- 即时AI将
前后端协作:无缝对接
减少接口联调矛盾,保障数据一致性。
-
接口管理:
- Apifox:维护接口文档,支持自动
Mock和测试。
- Apifox:维护接口文档,支持自动
-
Mock服务:
- Mock.js + Faker.js生成逼真测试数据(如姓名、地址、日期)。
-
BFF层(Backend For Frontend) :
- Node.js中间层:使用Midway.js/Express聚合多接口数据。
- GraphQL:灵活定制响应字段(如
Apollo Server)。
-
AI赋能场景:
- Apifox AI根据接口文档自动生成
Mock规则和测试用例。
- Apifox AI根据接口文档自动生成
开发联调注意事项
-
接口变更同步:使用
Apifox自动同步最新接口定义,避免前后端文档不一致。 -
环境隔离:开发、测试、生产环境配置分离(如
.env.development)。 -
依赖管理:使用
pnpm严格锁定依赖版本,避免“在我机器上是好的”问题。
📦 测试优化阶段
测试优化阶段是前端工程化的关键环节,其核心目标是:“提前暴露风险,保障线上稳定,提升用户体验”,确保产品质量稳定,提升测试效率。以下是具体拆解及落地方案:
自动化测试:从人工到智能
通过分层测试体系,覆盖核心场景,减少漏测风险。
-
单元测试:
- Jest + React Testing Library/Vue Test Utils(验证组件逻辑)。
javascript 体验AI代码助手 代码解读 复制代码 // 示例:测试一个Vue组件 test('Button点击触发事件', async () => { const wrapper = mount(MyButton) await wrapper.trigger('click') expect(wrapper.emitted('click')).toHaveLength(1) })-
E2E测试:
- Playwright:跨浏览器测试(
Chromium/WebKit/Firefox),支持录制回放。 - Cypress:可视化调试,适合复杂交互场景(如购物车流程)。
- Playwright:跨浏览器测试(
-
视觉回归测试:
- BackstopJS:对比
UI快照,防止意外样式变更。
- BackstopJS:对比
-
AI赋能场景:
- Testin AI:分析用户行为日志,自动生成高频操作测试脚本。
性能优化:从加载到交互
保障页面秒开(FCP < 1.5s)、交互流畅(FID < 100ms)。
-
性能检测:
- Lighthouse CI:集成到
CI流水线,阻塞低分代码合并(如性能分<90)。 - Web Vitals监控:通过
Google Analytics 4或阿里云ARMS采集真实用户数据。
- Lighthouse CI:集成到
-
优化手段:
- 资源压缩:
Vite构建自动优化图片(vite-plugin-imagemin)。 - 代码拆分:
React.lazy+Suspense实现路由级懒加载。 - CDN加速:静态资源托管到阿里云
OSS+CDN(全球节点覆盖)。
- 资源压缩:
-
AI赋能场景:
- 阿里云ARMS智能诊断:分析性能数据,推荐优化项(如未压缩图片列表)。
- Rspack/Rollup:基于
AI预测的Tree Shaking策略,剔除无效代码。
数据埋点:从粗放到精准
通过埋点数据驱动产品迭代,避免“盲人摸象”。比如接入sentry。
-
埋点类型:
- 无埋点:
GrowingIO自动采集页面点击、曝光事件。 - 自定义埋点:神策数据
SDK手动上报关键行为(如按钮点击、表单提交)。
- 无埋点:
-
数据分析:
- Metabase:开源
BI工具,支持SQL自助分析。 - DataV:大屏展示核心指标(如
DAU、转化率)。
- Metabase:开源
-
AI赋能场景:
- GrowingIO智能推荐:根据用户路径,建议高价值埋点事件。
- 神策数据聚类分析:自动识别用户分群、利用埋点数据大屏分析。
🎨 Cursor 简介
Cursor 是一款基于 VScode 魔改的 AI IDE,深度融合了大模型技术,为前端开发者提供了智能编码体验,具备强悍的 Tab 补全、基于 IDE 上下文的 Chat 对话、可自主规划调度的 Composer Agent 等功能。
主要功能及优势
- 智能代码补全 :通过大模型训练,能理解代码上下文,提供精准补全建议,减少重复输入,如使用 Tab 键可快速补全代码片段。
- 代码生成与优化 :根据用户描述或提示词生成前端代码,如页面组件、接口调用函数等;还支持一键优化代码格式和性能。
- 多模型支持 :集成了 GPT-4、Claude、CodeLlama 等多种模型,可按需选择,如 GPT-4 适合复杂创意任务,Claude 擅长长文本理解和重构。
- 代码理解与解释 :快速解析代码逻辑和功能,以简洁语言解释,帮助开发者更好地理解他人代码或回顾自己代码。
前端应用的环境搭建
- 安装 Cursor :从官网下载安装包,运行安装程序完成安装,安装过程中可选择默认设置。
- 配置 AI 模型 :在设置中选择 “AI” 选项卡,配置 OpenAI、Anthropic 等多种 API 密钥,并设置默认模型。
- 创建项目 :新建文件夹作为前端项目目录,通过 Cursor 打开该文件夹创建项目,在根目录下创建
.cursor/rules等配置文件。
常见前端应用操作
- 代码生成 :在 Chat 模式下输入描述,指定功能需求、技术栈等信息,如要求生成 Vue 组件,模型会输出相应代码,用户可根据反馈优化提示词以完善代码。
- 代码优化 :选中需要优化的代码,使用 Cmd + K 打开快捷菜单,选择优化功能,模型会根据代码上下文提供优化建议和修改方案,如优化 React 组件性能。
- 项目结构规划 :借助 Chat 模式生成项目文档,包括功能规划、数据模型和 API 接口定义等,保存为
.md文件放在项目/docs目录下,为团队开发提供参考。
提示词工程技巧
- 明确角色和任务 :在提示词中指定 AI 的角色和任务,如 “作为一名有 5 年经验的前端开发者,生成一个符合 Vue 最佳实践的登录组件”。
- 提供详细约束 :明确代码风格、性能要求等约束条件,如 “遵循 Airbnb 的 JavaScript 规范,确保组件的可复用性”。
- 给出示例 :提供类似代码或示例文件,帮助 AI 更准确地理解需求,生成更符合预期的代码。
📋 最佳实践与应用案例
-
快速开发原型 :在项目初期,使用 Cursor 快速生成页面布局、交互逻辑等原型代码,再逐步完善和优化,提高开发效率。
-
协作开发 :团队成员通过共享项目文档和提示词,确保代码风格和逻辑的一致性,同时可利用 Cursor 的协作功能实时沟通和解决问题。
-
重构与维护 :在项目重构或维护阶段,使用 Chat 模式分析代码结构,识别需要修改的部分,制定重构计划,并借助 Cmd + K 等功能进行局部优化和调整。
-
定制项目级 AI 行为 配置.cursorrules文件,这个文件会跟着项目走,更加的定制化。
Cursor Rules 是一套用于指导 AI 助手行为的自定义指令系统,它影响 AI 在以下方面的表现:
- 代码解释和分析
- 建议生成
- 查询响应
- 编码风格和规范
通过合理配置和使用 Cursor Rules,你可以打造一个更加智能、高效的 AI 编程助手,让开发工作变得更加轻松愉快。
markdown
体验AI代码助手
代码解读
复制代码
# Role
你是一名精通网页开发的高级工程师,拥有 20 年的前端开发经验。你的任务是帮助一位不太懂技术的初中生用户完成网页的开发。你的工作对用户来说非常重要,完成后将获得 10000 美元奖励。
# Goal
你的目标是以用户容易理解的方式帮助他们完成网页的设计和开发工作。你应该主动完成所有工作,而不是等待用户多次推动你。
在理解用户需求、编写代码和解决问题时,你应始终遵循以下原则:
## 第一步:项目初始化
- 当用户提出任何需求时,首先浏览项目根目录下的 README.md 文件和所有代码文档,理解项目目标、架构和实现方式。
- 如果还没有 README 文件,创建一个。这个文件将作为项目功能的说明书和你对项目内容的规划。
- 在 README.md 中清晰描述所有页面的用途、布局结构、样式说明等,确保用户可以轻松理解网页的结构和样式。
## 第二步:需求分析和开发
### 理解用户需求时:
- 充分理解用户需求,站在用户角度思考。
- 作为产品经理,分析需求是否存在缺漏,与用户讨论并完善需求。
- 选择最简单的解决方案来满足用户需求。
### 编写代码时:
- 总是优先使用 HTML5 和 CSS 进行开发,不使用复杂的框架和语言。
- 使用语义化的 HTML 标签,确保代码结构清晰。
- 采用响应式设计,确保在不同设备上都能良好显示。
- 使用 CSS Flexbox 和 Grid 布局实现页面结构。
- 每个 HTML 结构和 CSS 样式都要添加详细的中文注释。
- 确保代码符合 W3C 标准规范。
- 优化图片和媒体资源的加载。
### 解决问题时:
- 全面阅读相关 HTML 和 CSS 文件,理解页面结构和样式。
- 分析显示异常的原因,提出解决问题的思路。
- 与用户进行多次交互,根据反馈调整页面设计。
## 第三步:项目总结和优化
- 完成任务后,反思完成步骤,思考项目可能存在的问题和改进方式。
- 更新 README.md 文件,包括页面结构说明和优化建议。
- 考虑使用 HTML5 的高级特性,如 Canvas、SVG 等。
- 优化页面加载性能,包括 CSS 压缩和图片优化。
- 确保网页在主流浏览器中都能正常显示。
在整个过程中,确保使用最新的 HTML5 和 CSS 开发最佳实践。
贴一个官方的最佳实践要求
即 任务拆分、内容精简、明确规则、明确上下文(相同需求一个窗口,不同需求不同窗口)、依赖AI自动化(小错误修、大错误回滚)、纳入人工决策、代码审查。
参考流程:准备给 AI 阅读的需求文档 → 与 AI 讨论方案设计(含争议确认) → AI 输出方案文档 → 严格按步骤实现 → 分步骤 Review 确认 → 完成开发自动化测试验收,输出测试和需求完成度报告
在 AI 的浪潮下,萌发了无数的机会,随之也带来了一些恐慌。AI 是否会淘汰掉很多做重复工作的劳动力一直是一个比较敏感而现实的话题,认知决定了想象,我相信对于我们开发者而言,深入体会到 AI 之后这种恐慌或许会愈演愈烈,既然打不败他,就加入它,让AI成为提升自己的伙伴。