Go语言技术文章
-
说明 Go gzip.Writer.Close 为什么不能省略:它会完成压缩状态并写出 gzip 尾部信息。文章给出正确的 defer 关闭顺序,区分 Flush 与 Close,并整理读取不完整、底层关闭失败等排查边界。374 收藏 -
Go 二进制在 Alpine 启动失败时,应读取 ELF 架构、解释器和动态库需求,区分平台错误与 glibc/musl 不匹配。本文给出 readelf 排查命令,以及纯 Go 构建、musl 重编译和 glibc 运行环境的选择边界。374 收藏 -
Go 模块发布错误版本后,不要删除旧 tag 或覆盖原版本。本文说明如何在 go.mod 使用 retract 撤回单个版本或版本区间,为什么必须发布更高版本,以及如何用 go list 和 go get 核对撤回提示与兼容边界。374 收藏 -
Go strings.Builder 的容量优化关键不在盲目调用 Grow,而在于按最终文本的字节数估算预算、用 Len 和 Cap 观察结果,并把 String、Reset 与禁止复制非零 Builder 的边界分清。374 收藏 -
围绕 Go context.WithCancel 的生命周期,说明为什么创建后应立即 defer cancel,以及长任务如何让 worker 监听 Done 并正确收尾。374 收藏 -
netip.ParseAddrPort 不会为缺端口输入自动补值。本文将显式IP端点与裸IP分开,提供业务默认端口封装,保留空端口、越界端口和域名错误,并解释IPv6歧义、零端口及配置迁移边界。374 收藏 -
本文说明如何用带缓冲 channel 作为槽位池限制 Go 并发任务数,覆盖容量语义、槽位获取与释放、context 取消、WaitGroup 收尾,以及信号量和固定 worker 的选择边界。374 收藏 -
Python 3.14 引入 compression.zstd。本文按数据形态说明一次性压缩、文件流和增量压缩的用法,并梳理可选模块、flush、兼容导入与归档工具边界。374 收藏 -
Redis Streams 消费组中,XACK 只负责把已成功处理的消息从当前组的待确认列表移除。本文用最小命令说明确认时机、重复 ID、返回计数、PEL 查询和失败重试边界,避免把重复投递误判成重复确认。374 收藏 -
Go os.Root.FS 可以把受限目录适配为 fs.FS,让 fs.ReadDir、fs.ReadFile 等标准库读取接口复用目录边界。本文说明相对路径、Root 生命周期、越界访问和读写职责的取舍。374 收藏 -
Basecamp官方 Apps 页面同时提供网页、Mac、Windows、iOS 和 Android 入口。本文按使用场景说明如何选择访问方式,核对登录、帮助和更新路径,并提醒账号与安装安全边界。373 收藏 -
Python 生成器被提前停止时,close() 会通过 GeneratorExit 触发 finally,但未开始执行、被吞异常或引用仍存活等情况会改变清理结果。本文用可复现代码拆开这些边界。373 收藏 -
CSS anchor positioning 可以把提示浮层和目标元素建立布局关系,再用 position-try-fallbacks 处理靠近视口边缘时的换位。本文从一个可运行的提示菜单例子出发,说明锚点声明、浮层定位、溢出回退和兼容降级的验证方法。373 收藏 -
用 bytes.Reader.WriteTo 把内存中的字节流交给 io.Writer,重点核对读取游标、短写返回和 Reader 复用时的状态边界。373 收藏 -
Java 25 正式加入 import module 声明,可以按模块导入其导出的顶层类型,减少多个通配包导入。本文用 java.base 示例说明可见范围、命名冲突和 classpath 场景下的边界。373 收藏