Go语言技术文章
-
比较大字节序列时,已有 []byte 就直接使用 bytes.Equal,不必先转换成 string。本文说明它的判断边界、与前缀和排序 API 的区别,以及性能和并发注意事项。211 收藏 -
Go gzip.Reader 默认合并多成员内容,Multistream(false) 在当前成员结束时停止。用完整内存示例比较两种读取方式,说明 Reset 复位、ByteReader 边界和资源关闭责任。211 收藏 -
PHP 文件上传失败时,upload_max_filesize 限制单个文件,post_max_size 限制整个 POST 请求。本文用现象、配置和 PHP 读取值的方法区分两者,说明为什么 post_max_size 必须更大,以及如何处理超限后 $_FILES 为空。211 收藏 -
systemd 服务需要增加环境变量时,优先用 systemctl edit 创建 drop-in,而不是直接修改原始 unit。本文按固定值、EnvironmentFile、同名覆盖和回滚四个环节,说明 Environment、EnvironmentFile 与清空规则的优先级。211 收藏 -
Pydantic 的多个字段联合约束,应按规则范围选择 model_validator 或 field_validator:模型级规则比较完整实例,字段级规则只读取已完成验证的数据。本文用密码确认和区间边界示例说明验证层、顺序和错误处理。210 收藏 -
Go 测试里的 ticker 泄漏,常见根因不是 Stop 单独缺失,而是 goroutine 一直阻塞在不会自动关闭的 ticker.C 上。本文用 done、Stop 和 WaitGroup 给出完整收尾方式。210 收藏 -
vLLM 连续批处理并不是并发越高越快。本文从模型权重、KV Cache、序列数和批次 token 预算出发,给出显存与吞吐的调参顺序、压测方法和生产降级路径。209 收藏 -
Go database/sql 的 sql.DB 是连接池。需要让一组操作落在同一个数据库会话时,可以用 DB.Conn 获取独立连接;操作结束必须调用 Conn.Close 将连接归还池中,并用上下文控制等待时间。209 收藏 -
Go 的 replace 可以替换间接依赖,但它只改变主模块依赖图中的模块内容来源;是否进入图仍由 require 和模块图决定。本文用 MVS、go mod graph 与 go list -m all 给出判断方法。208 收藏 -
食品小作坊可用一张主表配一套凭证索引,记录原料批次、数量、供货者、合格证明、验收结论和存放位置;缺证或异常来货先隔离,具体字段和保存期限再按属地规定补充。208 收藏 -
围绕 time.Ticker 的动态改周期、永久停止和停止后复用,讲清 Reset、Stop 与 C 通道之间的调用顺序,避免重复创建和并发竞态。208 收藏 -
Python Typer 的 bool 参数可以自动生成正反开关,也能用 --accept/--reject 自定义业务语义;需要区分未选择与明确关闭时,应使用 bool | None。208 收藏 -
CGO_ENABLED=0 会让导入 C 的 Go 文件不参与构建,因此某些依赖会直接失去实现。本文按 cgo 构建约束、CgoFiles、CC 与目标平台四个输入定位原因,再决定使用纯 Go 替代还是补齐 C 编译链。208 收藏 -
Go netip.ParseAddrPort 可以把带数字端口的 IPv4 或 IPv6 文本解析为 AddrPort,再通过 Addr 和 Port 读取结构化结果。本文说明方括号、非法输入、主机名和 SplitHostPort 的边界。208 收藏 -
围绕 encoding/xml.Decoder.Token 讲清混合 XML 节点的顺序读取、StartElement 分派、CharData 处理和 Skip 跳过嵌套子树,给出可复用的 Go 遍历函数与边界处理方式。208 收藏