Go语言技术文章
-
channel range 结束只说明 channel 已关闭且缓存值已读完,不代表发送方 goroutine 已经退出。本文用发送方关闭 channel、WaitGroup 汇总和 context 取消,说明如何确认发送方真正结束并避免协程泄漏。125 收藏 -
multiprocessing.Queue 的 close() 不会立刻杀掉 feeder thread,它还要把缓冲数据刷入 pipe。本文解释 close、join_thread 与 cancel_join_thread 的边界,并给出避免进程退出卡住的关闭顺序。125 收藏 -
Go multipart boundary 缺失时,先检查 Content-Type 参数,再区分请求头、请求体和字段层问题;本文给出客户端发送与服务端诊断的可靠写法。125 收藏 -
pkg.go.dev 已提供面向 Go 模块元数据的官方 JSON API。本文从 package、module、versions 等端点入手,说明版本参数、歧义模块路径与自动化客户端的处理边界。125 收藏 -
讲清 Go text/template 如何通过 FuncMap 注册自定义函数,为什么必须先 Funcs 再 Parse,以及如何处理函数签名、error 返回和生产环境初始化顺序。125 收藏 -
用 Go 的 atomic.Uint64 实现并发请求计数,掌握 Add、Load、零值、复制限制、溢出与旧版 sync/atomic 函数的使用边界。125 收藏 -
解释 Go httptest.ResponseRecorder 为什么常见 200,梳理 NewRecorder 初始值、Write 的隐式状态、WriteHeader 首次生效和 Result().StatusCode 的稳定断言边界。125 收藏 -
Go 的 bytes.Reader 适合从 []byte 创建只读游标。本文用一个可运行示例说明 Read、ReadAt、Seek、Len、Size 和 Reset 的区别,帮助你按顺序读取或按偏移取字节。125 收藏 -
解释 Go 中 nil 指针调用值接收者方法为何会在方法体前 panic,并用最小示例区分值接收者、指针接收者和接口 typed-nil。125 收藏 -
Go 的 DisallowUnknownFields 适合封闭、可控的 JSON 写接口,用来尽早发现拼写错误;面对第三方 webhook 和可扩展 payload 时应谨慎开启。125 收藏 -
MySQL Performance Schema 查平均耗时时,应从 events_statements_summary_by_digest 读取 AVG_TIMER_WAIT,并按皮秒换算为毫秒。本文说明采集开关、查询写法、聚合边界和短窗口核对方法。125 收藏 -
CSS reading-flow 可以在特定布局场景下调整 Grid 或 Flex 子项的阅读与 Tab 顺序,但它仍是实验性能力,必须优先保持合理 DOM 顺序,并用浏览器能力检测安排降级。124 收藏 -
2026年重阳节是10月18日,农历九月初九,也是老年节,但不属于国家法定节假日。本文说明日期怎么核对、是否放假以及为家中老人安排活动时需要注意的事项。124 收藏 -
视觉模型遇到 20MB 以上图片时,真正棘手的是尺寸预算、上传方式和重试边界同时变化。本文从请求前预缩放、分块上传到失败回收,拆解一条可验证的图片输入链路,并说明什么时候应该拒绝重试。124 收藏 -
ClassValue 适合把与 Class 绑定的元数据懒加载并缓存起来。本文用一段可运行示例拆开 get、类型值计算、remove 的关系,并说明它与普通 Map 缓存、类卸载之间的边界。124 收藏