Go语言技术文章
-
Go Colly 默认会记录已经访问过的 URL,所以同一个地址第二次 Visit 常见返回 ErrAlreadyVisited。本文从复现、允许重复访问、分页参数和重试边界说明怎样处理,避免用全局开关掩盖请求设计问题。482 收藏 -
Python defaultdict 的下标读取会触发 __missing__,调用 default_factory 并把缺省值写回字典。本文对比 []、get()、in 和 keys/items 的差异,帮助你区分主动初始化与只读查询。482 收藏 -
本文用 systemd WatchdogSec、sd_notify 与 Restart=on-watchdog 配置服务心跳,解释超时重启、NotifyAccess、启动限速和排障方法,避免进程存活却业务假死。482 收藏 -
Golang · Go教程 | 1星期前 | 标准库 · 配置管理 · 错误处理 · 并发编程 · Go教程 · Go 并发初始化 共享配置 sync.OnceValue sync.OnceValues
Go 1.21+ 可用 sync.OnceValues 把共享配置与初始化错误作为一对结果缓存,避免 sync.Once 配合外部变量造成分散状态。本文通过可测试的 ConfigProvider 展示并发只加载一次、错误传播及不适合自动重试的边界。482 收藏 -
文章 · java教程 | 1星期前 | 线程池 · 异常处理 · 并发编程 · Java教程 · CompletableFuture · 异步任务 completablefuture allOf Handle 结果汇总 CompletionException
本文解释 CompletableFuture.allOf 为什么只返回 Void、如何在完成屏障后汇总子任务结果,并通过 handle 将任务名、成功值和根异常保存到 TaskResult,解决多任务失败归属不清的问题。482 收藏 -
在文件节点返回 fs.SkipDir 会跳过父目录剩余条目,fs.SkipAll 则停止整棵树。本文用对照表和代码说明安全选择边界。482 收藏 -
依据现行城建档案规则,整理建筑项目从准备、设计、施工到验收移交的分阶段归档清单,并提示地方差异和整改闭环。482 收藏 -
用 Go hash.Hash 和固定缓冲区流式计算文件摘要,覆盖部分读取、EOF、真实 I/O 错误、资源关闭与摘要输出边界。482 收藏 -
Go 中用 os.OpenFile 创建唯一文件时,O_EXCL 必须和 O_CREATE 一起使用。本文给出错误判断、关闭处理与并发验收指标,避免已有文件被覆盖或截断。482 收藏 -
MySQL JSON 数组不能直接按普通列建索引。本文用 InnoDB 多值索引把标量数组映射成可查询的索引记录,并说明 MEMBER OF、JSON_CONTAINS、JSON_OVERLAPS 及空数组、类型和排序限制。482 收藏 -
Golang · Go问答 | 1个月前 | go语言 · 接口设计 · Go问答 · 兼容性 · encoding/json 接口兼容 DisallowUnknownFields RawMessage Go JSON 未知字段
Go 的 JSON 接口如果既要兼容带新增字段的旧客户端,又要知道协议发生了什么变化,可以先正常解码结构体,再用 map[string]json.RawMessage 读取字段名并比较白名单,最后将未知字段作为可审计告警,而不是直接拒绝请求。482 收藏 -
Redis ZRANGEBYLEX 适合在 Sorted Set 成员分值相同的前提下按字典序取范围。本文用 redis-cli 演示边界符号、LIMIT 分页、游标衔接及 Redis 6.2+ 的 ZRANGE BYLEX 替代写法。482 收藏 -
Go 的 map 读取不存在的键时不会报错,而是返回元素类型的零值。本文用具体代码解释单值读取、comma-ok、nil map 与写入 panic 的边界。482 收藏 -
Go 的 HTTP 客户端连接池关键不在于每次请求都新建 Client,而在于长期复用同一个 Transport,并分别理解空闲连接、主机总连接和空闲回收时间。本文给出可直接改造的配置与边界。482 收藏 -
Qdrant 中删除文档后仍被检索到,通常不是删除接口失效,而是写入确认、索引可见性、分布式顺序或应用缓存处在不同阶段。本文用一条可复查的排查链定位并修复这个问题。482 收藏