Go语言技术文章
-
前端 source map 不只是调试开关,也决定了浏览器能看到多少源码信息。本文从 sourceMappingURL、sourcesContent 和生产构建策略入手,说明如何把调试地图留在受控错误上报链路中。194 收藏 -
CSS 自定义属性默认按离散值处理,直接做颜色或数值动画时常常没有中间帧。本文用 @property 声明 syntax、inherits 和 initial-value,让 --progress 与 --accent 获得可插值的动画能力。224 收藏 -
浏览器后台标签页可能延迟定时器,直接用客户端心跳时间判断 WebSocket 存活容易误报。本文说明如何结合 visibilitychange、应用层 ping/pong、服务端确认和退避重连,避免页面恢复时重复连接。483 收藏 -
WebTransport 的双向流和 Datagram 都能承载实时数据,但可靠性、顺序性和消息边界完全不同。本文用一个实时面板的取舍场景说明两者适合什么数据,并给出可靠流的 framing 写法与兼容检查清单。440 收藏 -
用 Web Streams 组装生产、转换和消费管道时,关键不是手工堆积缓存,而是让下游需求通过队列和 pipe 链路传回 source,并用 AbortController 统一处理取消、超时和资源释放。175 收藏 -
Vue 3 中直接解构 reactive 对象的 primitive 属性会断开响应式连接。本文用排障手册的方式解释原因,并给出 toRefs、toRef 与保留 state.field 三种处理选择。496 收藏 -
Vue 3 中监听 reactive 对象的单个字段时,应把字段访问放进 getter,而不是直接传当前值。本文结合一次表单联动排障,讲清 getter、deep、immediate 和 Options API 点号路径的取舍。297 收藏 -
React Suspense 遇到多个独立数据源时,关键不是把所有请求都塞进一个组件,而是提前并行创建稳定的 Promise,再按内容块设置 Suspense 边界。本文说明请求瀑布的成因、缓存读取、依赖顺序、刷新和错误处理。368 收藏 -
TypeScript 中,外部输入优先使用 unknown 并通过类型守卫收窄;any 只适合被限制在遗留适配层。本文从接口响应、运行时风险和渐进迁移三个角度说明怎样选择。230 收藏 -
开启 TypeScript noUncheckedIndexedAccess 后,数组下标读取会带上 undefined。本文按规则、循环、索引判断和迁移边界说明怎样选择 for-of、边界检查、默认值与非空断言。435 收藏 -
Vite 的 import.meta.env 主要在开发服务器启动或生产构建阶段读取并静态替换,浏览器运行时不能直接改写已经打包的值。本文解释构建期配置与运行时配置的边界,并给出外置 config.js 的落地方式。413 收藏 -
Vite 依赖预构建异常时,先区分 node_modules/.vite 文件系统缓存和浏览器强缓存,再用日志、Network 和 --force 选择最小恢复动作。236 收藏 -
Bash 管道默认只返回最后一个命令的状态,容易掩盖中间失败。本文说明如何启用 pipefail,让失败状态传到管道外层,并用 PIPESTATUS 区分各段命令,同时处理 set -e 和预期失败的边界。290 收藏 -
Linux 定时任务不只是表达式选择:本文从日志、服务依赖、错过执行、失败处理和任务重叠几个边界比较 cron 与 systemd timer,并给出两套最小配置。192 收藏 -
Linux 出现内存不足时,OOM killer 会在内核日志中留下被选进程线索。本文从 journalctl 和 dmesg 入手,说明怎样提取 pid、进程名、命令行与 cgroup 归属,并区分节点级内存压力和容器局部超限,避免只重启服务却没有解决根因。131 收藏