Go语言技术文章
-
Go 模块解析遇到某个已知不能加载的版本时,可以在主模块 go.mod 中用 exclude 精确排除 module@version,再观察解析器是否选择更高可用版本。本文同时说明它与 replace 的边界,以及为什么不会改写下游模块。275 收藏 -
Linux systemd 服务失败重启时,应组合使用 Restart=on-failure、RestartSec、StartLimitIntervalSec 和 StartLimitBurst,并用退出码区分可恢复故障与不可恢复配置错误。本文给出 unit 配置和 systemctl、journalctl 复查方法。275 收藏 -
Go 中给 net.Resolver 设置 Dial 后仍访问默认 DNS,通常不是地址写错,而是当前平台没有选择 Go 内置解析器。本文解释 Resolver.Dial 与 PreferGo 的组合边界,并给出接入 HTTP Transport、处理平台差异和保留回退路径的写法。275 收藏 -
Redis ACL 可以用命令类别减少逐条授权的维护成本,但命令权限不等于键和频道权限。本文从只读缓存账号出发,比较类别授权、单命令授权与排除式授权,给出可复查的最小权限组合。275 收藏 -
Go 时区缩写解析成功不代表偏移正确。本文解释 Parse 的本地时区依赖与未知缩写回退,给出显式地区解析旧输入、RFC3339 数字偏移交换新数据的写法及边界。275 收藏 -
Go 项目同时存在 vendor 和 module cache 时,构建到底读取哪份依赖?本文用 go env、go list 和 -mod 参数定位选择模式,解释 GOFLAGS、go.mod 版本与 vendor/modules.txt 的关系。275 收藏 -
Go 的 url.JoinPath 能在拼接 URL 路径时清理点号段和重复斜杠。本文通过后端接口地址实验讲清函数与方法差异、尾斜杠规则、路径转义和安全边界。274 收藏 -
Go 多模块工作区会把 use 中的本地模块同时视为主模块,可能遮住单个 go.mod 的依赖缺口。本文说明怎样用 GOWORK=off 复现独立构建、比较依赖边界,并用 require、可发布版本和 CI 单模块测试修复。274 收藏 -
Go fuzzing 的种子语料既可以来自 f.Add,也可以来自 testdata/fuzz/FuzzTestName 目录。本文给出按 Fuzz 目标拆分目录、区分样本用途并纳入安全审计的组织方法。274 收藏 -
html/template 并不是简单地把所有字符串统一转义,而是根据插值所在的 HTML、属性、URL、JavaScript 或 CSS 上下文选择处理方式。本文用最小示例排查转义异常、ZgotmplZ 和安全类型误用。274 收藏 -
用 sort.Search 的单调谓词找到升序切片中第一个大于等于目标值的位置,正确处理重复值、未命中和末尾插入。274 收藏 -
GopherLua 的 LState 不是 goroutine-safe。本文说明为什么不能让多个 goroutine 直接共用一个 LState,并给出独占状态、channel 通信、共享只读字节码和对象池的落地边界。274 收藏 -
用 Java Commons Compress 读取 tar 时,核心是以 TarArchiveInputStream 为当前归档流,用 getNextEntry() 逐项定位,再读取当前项字节。本文补上目录、编码、路径安全、资源关闭和大文件处理边界。274 收藏 -
机动车检验逾期应先通过交管官方渠道核对状态,区分可补检与已达强制报废标准。本文说明免检标志和上线检验的区别、材料准备、合法送检、预约防骗与办结后的状态确认,避免把预约成功当作恢复上路资格。274 收藏 -
Go finalizer 遇到相互引用的对象环时,回收顺序无法建立,终结器也不保证执行。本文用显式 Close、断开反向引用和运行时诊断,把资源释放改成可控的工程路径。274 收藏