Go语言技术文章
-
Golang · Go教程 | 4星期前 | WaitGroup · channel · 并发编程 · 优雅关闭 · Go教程 · WaitGroup Channel关闭 Go channel 并发收尾 done信号
本文把 Go channel 关闭拆成一套可复用工作流:先确定谁负责关闭,再用 done 信号通知停止,用 WaitGroup 等待协程收尾,最后关闭结果通道并验证没有 panic 和泄漏。165 收藏 -
本文用搜索框快速输入后结果倒退的现象入手,逐步复现旧响应覆盖新结果的问题,并用 AbortController 取消旧请求、请求序号只认最新响应,保证前端列表状态稳定。295 收藏 -
本文用 Go 接口返回 JSON 的现象入手,逐步验证 nil slice 和空 slice 在 len、cap、底层数组、json.Marshal 输出上的区别,并给出 API 响应保持 [] 的初始化方案。157 收藏 -
本文用知识库问答跑偏的真实工程场景,拆解 RAG 从问题改写、向量检索、重排过滤、分数阈值到引用检查的完整流程,帮助你把“模型乱答”改成可排查、可复查、可拒答的系统。419 收藏 -
本文用 Go 批量处理文件时出现打开失败的案例,逐步复现 defer 放在循环里的句柄堆积问题,并通过封装单文件处理函数让 Close 及时触发,最后给出复查清单。332 收藏 -
本文用一次 PHP 文件上传排查为线索,从 $_FILES 错误码、大小限制、MIME 白名单、文件名重命名到安全落盘逐步验证,帮助你避免只看后缀、空临时文件和路径覆盖等常见问题。483 收藏 -
文章 · java教程 | 4星期前 | map · 并发安全 · 缓存设计 · Java教程 · java optional concurrenthashmap computeIfAbsent Map缓存
本文用一个用户资料缓存场景,完整拆解 Java Map computeIfAbsent 的使用边界、缺失加载、空值包装、并发 Map 选择和上线前检查,帮助你写出更简洁且行为可控的缓存初始化代码。236 收藏 -
从循环 GET 多个 Redis key 导致接口变慢的现场开始,排查网络往返累积问题,再用 Pipeline、分批窗口和结果顺序对齐优化批量读写。436 收藏 -
Cloudflare 官方博客披露 Ensemble AI 团队加入后,AI 推理平台竞争再次聚焦延迟、成本和模型优化。本文整理事实、影响和开发团队的检查清单。430 收藏 -
从一个 AI Agent 把任务交给错误方向的案例出发,排查意图识别、边界规则、上下文摘要和结果复查四个环节,给出可落地的交接治理流程。170 收藏 -
从一个唯一索引没有拦住多条 NULL 数据的现场开始,复现 MySQL 唯一索引与 NULL 的行为,再用 NOT NULL、业务默认值和生成列三种方案修复约束边界。109 收藏 -
图片懒加载如果没有预留尺寸,页面会在图片加载后发生布局抖动。本文按完整工作流拆解占位比例、IntersectionObserver 按需加载、骨架状态和 CLS 指标复查。128 收藏 -
Java 后端线上出现 NullPointerException 时,不要只在报错行补 if。本文从日志定位开始,复现空字段请求,逐步确认根因,并用入口校验、安全映射和复查用例降低同类问题。204 收藏 -
Linux 服务启动失败并提示端口已被占用时,不能只换端口了事。本文按完整工作流拆解 ss 检查监听、lsof 定位进程、停止旧服务或切换端口、curl 复查和监控告警。335 收藏 -
Linux 磁盘明明还有空间,却提示 No space left on device,常见原因是 inode 用尽。本文按完整工作流拆解 df -h、df -i、find 定位小文件目录、清理归档、日志轮转和监控验证。284 收藏