READING PATHS

不知道从哪篇开始,就按问题读。

这些路径没有先修顺序。选一个和当前工作最接近的场景,三篇读完就够用。

刚接手一个项目
工程效率与质量8 分钟

可复现开发环境:让新成员半小时跑起项目

固定运行时版本、自动准备依赖服务,并用干净环境持续验证项目启动文档。

开发环境Dev Container版本管理Onboarding
工程效率与质量8 分钟

结构化日志落地:从 requestId 一路追到后台任务

统一字段、传递上下文并控制敏感信息,让日志真正支持跨服务检索和故障定位。

日志OpenTelemetryTrace可观测性
工程效率与质量8 分钟

TypeScript 大项目提速:从一个 tsconfig 拆到 Project References

用 Project References 拆分类型检查边界,降低编辑器负担,并让 CI 只重建真正受影响的项目。

TypeScripttsconfig增量构建Monorepo
页面变慢了
前端与浏览器10 分钟

Core Web Vitals 优化:从指标回到用户路径

介绍三项核心体验指标的组成、现场数据与实验室数据差异,以及每类问题的优先优化路径。

LCPINPCLSWeb Vitals
前端与浏览器9 分钟

从 HTML 到像素:浏览器渲染流水线怎么工作

浏览器不会直接把 HTML 画到屏幕上。本文拆解主线程上的解析、样式计算、布局和绘制,以及合成线程如何复用图层。

RenderingDOMCSSOMPerformance
前端与浏览器11 分钟

用 CSP 把 XSS 从一次失误变成多层防线

从 Report-Only 开始部署内容安全策略,使用 nonce、strict-dynamic 和 Trusted Types 降低脚本注入风险。

CSPXSSNonceTrusted Types
接口开始不稳定
服务端与数据8 分钟

Express 异步错误处理:让异常只经过一个出口

把业务异常、参数错误和未知故障收敛到统一中间件,避免重复 try/catch、泄露堆栈和一条请求记录多次日志。

ExpressError HandlingLoggingAPI
服务端与数据11 分钟

接口幂等:网络重试不应该创建两笔订单

客户端超时后重试是正常行为。对支付、下单等写接口,引入幂等键并在数据库事务中认领请求,才能避免重复副作用。

IdempotencyREST APIPostgreSQLReliability
前端与浏览器10 分钟

HTTP 缓存策略:强缓存、协商缓存与版本化资源

从 Cache-Control 的语义出发,为带哈希静态资源、HTML、接口数据和用户私有数据设计可预测的缓存策略。

HTTP CacheCache-ControlETagCDN