范文资源网

导航栏

×
你的位置: 范文资源网 >工作总结 >导航

工作总结

时间:2026-05-19

【深度】web前端开发工作总结。

把时间轴拉回三个月前那个凌晨,监控突然跳出一片红色告警。我当时的反应不是紧张,是窝火——这套破系统撑了两年,偏偏在业务高峰前给我整幺蛾子?

那是电商促销预热期的H5活动页,晚上十点,用户反馈群炸了。我打开页面,白屏。F12一看,控制台报错:某个chunk文件404。Webpack异步加载的组件,名字带hash,服务器上明明有这个文件。奇怪,怎么找不到?我翻了Nginx access log,发现请求路径里多了一层“/static/”。代码写的是“/static/js/main.hash.js”,实际请求是“/static/static/js/main.hash.js”。我当时真没想通——谁特么多此一举?

接着查部署脚本。Jenkins打包出来的dist目录结构正常,但上传到OSS的脚本里,有人写死了目标路径“/static”,而CDN回源配置又默认加了一层“/static”。两层叠加,路径重复。Git blame一看,一周前运维同事改的,理由写的是“统一静态资源目录”。没通知前端组,没跑回归验证。这事儿后来我们开了个“三方会审”(前端+运维+测试),定了个死规矩:任何涉及CDN、路径、部署脚本的改动,必须在前端仓库的.cd/目录下同步修改一个.env.cdn模板,并且跑通npm run validate-cdn才能合并。

说回那天晚上。我刚开始也走了弯路——第一反应是CDN节点同步延迟,清了半小时缓存,没用。然后又怀疑是Webpack的publicPath配错了,重新打包上传,还是404。折腾了四十分钟,最后才定位到Nginx rewrite可以临时救场:把“/static/static/”重定向到“/static/”,十分钟恢复。但这事儿让我后怕:如果当时我一开始就查access log而不是凭经验瞎猜,能少浪费半小时。

事后我做了三件事,现在贴在团队wiki置顶。第一,静态资源上传前必须生成manifest.json,部署脚本对比本次产物与上次成功部署的差异——路径不一致直接阻断发布。第二,写了一份《前端CDN与静态资源交付工艺标准》,里面有一条:所有构建产物必须使用绝对路径,并且每次上线前在预发环境跑一个“弱网模拟脚本”,专门检测资源加载是否会因为路径拼接失败。第三,跟运维约定每周一次发布核对会,双方当面过一遍CDN配置、回源策略、缓存规则。

这个“工艺标准”不是空话。比如里面有一条规定:每次打包前本地跑一个check-static-paths.js,扫描所有HTML、JS、CSS里的静态资源引用,如果发现相对路径依赖CDN域名的情况,直接报错退出。又比如,对构建产物做完整性校验——打包后生成一个manifest.json,上传到OSS后,部署脚本从CDN拉回这个文件,跟本地比对,文件数量或哈希不一致就不让上线。

有人问我,前端开发搞这些不累吗?我说你错了,这些东西不搞才累。去年有一次接口字段变更,后端把“cpu_usage”改成了“cpu_util”,前端没做降级,老版本客户端全挂。调接口的人就是我。测试环境后端已经是最新版,跑通了,但生产环境还有一堆老版本的客户端。那次故障让我学会:前端调用后端接口,必须做字段存在性判断和默认值兜底;同时维护一张“接口字段版本对照表”,每次后端变更,前端就要在表里记录字段生效的版本范围,上线前跑一个脚本模拟老版本客户端请求,验证兼容性。

我们还有一台老爷机,Windows 7 + IE11,专门用来跑兼容性验证。那破机器启动一次要五分钟,风扇噪音像飞机起飞,但它救过我们很多次。上次有个同事用了Array.prototype.at(),babel转译配置漏了,Chrome跑得好好的,IE直接报错“对象不支持此属性或方法”。要不是那台老爷机,上线后至少影响5%的用户。现在那台机器硬盘坏了两次,我们干脆做成虚拟机快照,每周还原一次,避免环境被污染。

我最近在推一个前端稳定性看板,不是花哨的大屏,就三个指标:JS错误率(按页面和接口维度聚合)、静态资源加载失败率、首屏耗时P95。看板用Grafana搭的,数据来自Sentry和自建的performance日志。配置了三个告警阈值:JS错误率超过0.3%且持续2分钟,钉钉群发预警;静态资源加载失败率超过0.05%,自动触发CDN切换脚本;首屏耗时P95大于3秒时,推送当时网络环境分布(4G/5G/WiFi)。上周三早上一看错误率从0.1%窜到0.7%,点详情发现是第三方埋点SDK挂了——那个SDK的CDN域名解析超时。我立马在Nginx层做了个反向代理兜底,把请求指向自己的服务器缓存脚本,五分钟内错误率降回0.05%。用户完全无感知。

每一个线上故障,我都会写一张“故障处理卡”。格式固定:现象、定位步骤(包括我走过的弯路)、根因、临时方案、长期措施、影响范围、责任人、复盘日期。举个例子,最近一次卡片里有一条根因写的是“publicPath使用了相对路径,导致二级页面加载chunk时拼接了当前路由路径”。长期措施里写了“在webpack配置中加入环境变量校验,如果NODE_ENV=production且publicPath不是绝对路径,构建直接失败”。这些卡片按季度装订成册,新人入职第一周就是读这些卡,比任何培训材料都管用。

干这行八年,处理过上百次线上故障,我最大的体会是:前端稳定性不是靠写更好的代码,而是靠一套能发现自己犯错的流程。流程越细,脑子越轻松。现在我每次上线前,手动执行一份checklist:CDN预热是否完成、所有异步chunk的预加载策略是否配置、接口超时时间是否覆盖最慢场景(我们统一设了15秒,并且加了三次重试,重试间隔指数退避)、移动端页面在弱网模式下(Network throttling设为Slow 3G)是否还能加载出骨架屏。这份清单迭代了六个版本,每次遇到新类型故障就补一条。

再说回那次路径重复的事故。它让我们把静态资源管理从“差不多就行”变成了“必须有验收标准”。现在新项目启动,第一件事不是写代码,而是确定资源命名规范、部署流水线的检查点、故障定级标准。这听起来很重,但实际跑起来,反而省了无数半夜爬起来修BUG的时间。说句糙话:再牛逼的程序员也会写BUG,但一个好的系统能让你在用户骂娘之前自己先发现。而我们这些兼着运维活的前端,就是那个不停给系统打补丁、上监控、写预案的人。不是苦差事,是给自己擦屁股擦出经验了。

    为了您方便浏览更多的工作总结网内容,请访问工作总结

文章来源://www.zy185.com/gongzuozongjie/168291.html

工作总结相关文章

更多>