工程实践
已收录文章:43篇
-
Redis 的 EXPIRE 作用在整个 key 上,不能直接给同一个 HASH 的每个 field 设置独立 TTL。本文从用户会话属性和临时状态的场景出发,对比拆 key、时间戳字段、ZSET 索引三种设计,并给出清理任务、并发边界和验收方法。162 收藏
-
用 Go embed.FS 嵌入模板时,直接把整个目录交给模板引擎容易扩大读取范围。本文从目录挂载、路径清理和上线验收三个环节,给出可复查的安全写法。161 收藏
-
Go 项目从 fmt.Println 走向结构化日志后,标准库 slog、zap 和 zerolog 都能完成 JSON 输出,但默认行为、扩展方式、性能与迁移成本并不一样。本文按项目约束比较三种方案,并给出可落地的选择规则。151 收藏
-
本文用标准库 dataclass 写一套轻量配置加载方案,演示默认值、环境变量覆盖、类型转换和启动校验,避免服务上线后才发现端口、数据库地址或超时参数写错。131 收藏
-
npm 从 2026 年 7 月起在发布时自动扫描新包,包可能正常上线、进入人工复核或被拦截;带有双用途安全能力的包还要声明 contentPolicy、附带 DISCLOSURE,并使用强制双因素认证的发布方式。文章把这项变化落到 CI 验收、延迟重试和申诉准备上。108 收藏
-
context.WithValue 适合传递贯穿请求链的元数据,不适合替代函数参数或承载业务配置。本文用键类型、取值失败和测试隔离三个边界,说明什么时候该用、什么时候该拆出显式参数。107 收藏
-
本文用一个企业知识库场景,演示如何按标题层级切分文档、设置重叠窗口、保留来源元数据,并通过问题回放修正过碎或过大的分块。101 收藏