游客发表
面试官让我用三分钟介绍自己。我打开笔记本,介绍翻到那个用了四年的范文localhost:5173。屏幕上是端自我刚重构完的组件库,按钮 hover 时的介绍微动效还在循环播放。“我叫陈序,范文写了六年 CSS,端自现在看到任何界面第一反应是介绍拆成 flex 和 grid。” 对方笑了。范文我知道这开场不算标准,端自但比背简历管用。介绍
真正让我着迷前端的范文瞬间,是端自 2019 年改一个老后台的表格。当时用 jQuery 拼字符串,介绍两千行数据渲染要 4 秒。范文我换成虚拟滚动加 requestAnimationFrame 分片,降到 300 毫秒。产品经理拍我肩膀说“流畅得不像同一套系统”。从那以后我养成了个习惯:每接手一个页面,先打开 Performance 面板录三秒。
框架方面,Vue 和 React 都深度用过。Vue 的模板语法写业务快,React 的 hooks 抽逻辑更顺手。不过我现在面试很少问候选人“会用哪个 API”,更在意他能不能说清楚 useEffect 的清理函数为什么在依赖数组变化时执行两次。有次面一个应届生,他掏出手机给我看自己写的简易 diff 算法——用 canvas 画了棵虚拟 DOM 树,节点移动时连线会抖动。我当场就给了通过。
CSS 这块,我承认有点强迫症。看到 margin: 0 auto 就想改成 display: flex; justify-content: center。去年帮一个电商团队调移动端适配,他们用 rem 加媒体查询写了七套断点,我换成 clamp() 和容器查询,代码少了 60%。当然不是所有场景都适合新特性,但至少要知道 2025 年 :has() 的兼容性已经能上生产了。
工程化方面,我维护过三个项目的 webpack 配置,现在更倾向 Vite。有个细节:给团队配 vite-plugin-inspect 之后,新人才知道原来一个 import 会经过这么多插件转换。性能优化不是玄学,把构建产物打开,看看 chunk 里到底塞了什么,比背“雅虎军规”有用。上个月我把一个后台的 lodash 全换成 lodash-es 按需引入,gzip 后从 1.2M 降到 340K。
协作上,我坚持写 commit message 要带 scope。比如 fix(header): 移动端下拉菜单点击穿透。有人觉得小题大做,但回滚的时候就知道好处了。Code review 我不只看逻辑,还会看变量命名——data1 和 data2 这种,我会直接打回。前端代码是给人看的,顺便给机器执行。
最后说个翻车经历。去年给一个金融客户做仪表盘,用了 canvas 画实时曲线。测试环境一切正常,上线后用户反馈图表偶尔卡住。查了两天才发现,他们内网有台代理会拦截 WebSocket 心跳包,导致 requestAnimationFrame 被暂停。后来加了降级方案:检测到页面隐藏超过 10 秒就切到 setInterval 轮询。这事让我明白,前端不能只盯着浏览器,网络环境、甚至公司防火墙都得考虑。
如果你问我最大的优势,大概是看到任何网页都会下意识按 F12,然后对着 Sources 面板里的压缩代码皱眉头。改不掉,也不想改。
友情链接