Vue 前端工程师 · 广州 · 4 年经验
tangyuhe@example.com · 135 0000 0000 · github.com/tangyuhe
个人优势
- 4 年 Vue 经验,负责过供应链订货、仓储和教务排课等复杂中台,熟悉业务表单从需求澄清到上线维护的全过程
- 熟悉 Vue 3 响应式、依赖收集和 watch 刷新时机,主导过 400 多个组件从 Vue 2 渐进迁移,期间每周正常发版
- 组件设计讲究边界:通用字段组件只管交互和校验,审批、排课的业务状态机留在各自模块
- 做过扫码枪连续操作场景的性能优化,增量接口 + 批量队列,扫描反馈从约 1 秒降到 200ms
- 权限体系有落地经验:资源码清单由路由、菜单、按钮共用,服务端做最终鉴权,误显示反馈从十多次降到 1 次
- 金额计算统一按「分」做整数运算,修复过多处浮点误差导致的一分钱问题
- 可观测性按影响客户数告警,而不是按错误次数;首次报障到定位从半天缩短到约 20 分钟
- 大数据量计算会移到 Web Worker,补货工作台的交互卡顿从 1.3 秒降到 250ms 左右
- 熟悉 Vite 插件、Vitest、Cypress 和 CI 质量门禁,组件改动配 Storybook 和交互测试
- 重视一线用户的操作时间,会到仓库和客服现场看真实操作,再决定先优化哪一步
- 技术栈:Vue 3、TypeScript、Vite(含插件开发)、Vitest、Cypress、CI 质量门禁
工作经历
某供应链软件公司 · 前端工程师
产品服务连锁门店的采购、仓储与补货流程,约 500 家企业客户。前端组 5 人,我负责门店订货与仓库管理两条线。
- Vue 3 迁移:老系统 400 多个组件依赖 Vue 2 与 Element UI,业务不能停。先做依赖盘点和兼容测试,保留旧路由并逐模块迁到 Vue 3;把公用 API 适配层单独维护,避免每页散落版本判断。历时 10 周迁完核心模块,期间正常每周发版
- 拣货页效率:仓库员工使用扫码枪连续操作,旧页面每次扫描都重新请求整张单据。和后端约定增量变更接口,前端用批量队列合并短时间扫描结果;100 行订单下扫描反馈由约 1 秒降到 200ms,仓库试点每天少花约半小时核对
- 权限收敛:不同客户的岗位权限配置不一致,按钮权限以前靠页面内散落的条件判断。建立资源码清单,由路由、菜单和按钮共用,服务端仍做最终鉴权;补齐无权限、权限过期和切换租户的用例,季度权限误显示反馈从十多次降到 1 次
- 线上故障治理:接入前端错误和接口耗时监控,将租户、版本和路由写入上下文;按影响客户数而非错误次数报警。定位并修复一个只在旧版安卓扫码浏览器触发的异常,客服首次报障到定位从过去的半天缩短到约 20 分钟
某在线教育公司 · 前端开发工程师
所在 4 人小组维护教务排课和讲师工作台,学期开学前两周访问量明显上升。
- 负责排课日历的拖拽与冲突提示:课程跨校区、教师和教室三个维度验证,前端先给即时反馈,提交时服务端二次校验;排课员需要来回修改的次数减少约三分之一
- 将一批散落的弹窗表单整理为可复用字段组件,但审批和排课使用不同的业务状态机,保留在各自模块,避免共享层吞进业务规则
- 为讲师课表加缓存与离线提示,网络恢复后重新验证最新排课;移动浏览器里的误操作投诉逐月下降
项目经历
多门店补货建议工作台
Vue 3 / TypeScript / Pinia / ECharts / Web Worker
运营根据过去销量、促销计划和库存水位,为门店生成补货建议。一位运营通常一次审核 30 到 80 家店,页面需要同时展示趋势图和明细表。
- 原来前端在主线程聚合门店与 SKU 数据,切换筛选条件要卡住 1 秒以上。把纯计算移到 Worker,数据按批次发送,图表只更新受影响的序列;普通办公电脑上的交互卡顿从 1.3 秒降到 250ms 左右
- 用 URL 保存筛选维度,审核员复制链接给同事时能打开同一视图;批量采纳建议前展示异常库存与缺失数据,减少误下单
- 联合数据团队给建议值增加来源说明,用户可追溯销量区间、预测版本和人工调整记录。试点客户的“为什么推荐这个数量”咨询量下降约四成
表单字段组件库
Vue 3 / TypeScript / Storybook / Vitest
为采购、审批和财务页面提供统一的金额、日期、门店选择组件,目标是减少重复实现和边界错误。
- 金额输入统一按“分”做内部整数运算,展示层才转元,修复多处浮点计算造成的一分钱误差
- 门店选择器支持按租户分页搜索、已选项回显和权限变化提示;组件在 18 个页面复用,平均新建业务表单的前端工时由 2 天缩至约 1 天
- 为键盘导航、清空、异步加载失败写交互测试,并在 Storybook 标记不兼容的旧属性,升级时页面可以逐个迁移
仓库拣货扫码工作台
Vue 3 / Pinia / WebSocket / IndexedDB
仓库员工用扫码枪连续拣货,一张单子上百行,高峰期每人每小时扫描 600 次以上。
- 扫码枪按键盘输入模拟,连续扫描时字符会串在一起。按输入间隔区分人工输入和扫码,扫码结果进入批量队列,每 100ms 合并提交一次
- 单据改用增量接口,服务端只返回变化的行,前端按行 ID 合并;100 行订单下扫描反馈从约 1 秒降到 200ms
- 仓库网络不稳定,扫描记录先写 IndexedDB,断网时界面显示「待同步」数量,恢复后自动补交,重复扫描由服务端按扫描 ID 去重
- 试点仓库每天核对时间减少约半小时,后续推广到 23 个仓库