Go语言技术文章
-
Go atomic.Value 不能把 nil 接口和 *Config 混着存。用 typed nil 指针固定具体类型,再用不可变配置快照完成安全的可选配置热更新。164 收藏 -
Golang · Go问答 | 1个月前 | 随机数 · Go问答 · 安全编程 · crypto/rand · math/rand · 验证码 安全 随机数 Go crypto/rand math/rand
Go 里 crypto/rand 和 math/rand 都能生成随机值,但用途完全不同。本文用验证码、抽样和测试数据三个场景拆开安全资产、攻击路径、并发控制与验证方法,给出不容易选错的边界。163 收藏 -
PHP 8.2 提供的 ini_parse_quantity 能把 ini 风格容量解析成字节,但非法单位会发出警告并按兼容规则解释。本文用配置校验器拆开单位换算、整数溢出和上线验收边界。163 收藏 -
RAG 系统如果只保存一段孤立文本,回答命中后很难解释它来自文档哪里。本文用 Go 设计带标题路径、页码和片段编号的 Chunk,演示切片、检索上下文和引用回链如何连成一条可复查的数据路径。163 收藏 -
flag.FlagSet.Visit 只遍历用户实际设置过的参数,VisitAll 则按字典序遍历全部已注册参数。通过一个可运行的小实验看清两者的回调范围、默认值和适用场景。163 收藏 -
Java 文本块适合保存多行模板,但代码缩进可能混入结果。本文用 String.stripIndent 拆开共同缩进、空行和制表符边界,并对比 indent 的换行处理,给出可运行的判断方法。163 收藏 -
文章 · 前端 | 2星期前 | html · 前端 · javascript · 弹窗 · 浏览器API · dialog close cancel HTMLDialogElement requestClose
用原生 dialog 做确认弹窗时,requestClose() 能把 Esc、关闭按钮和脚本关闭统一到 cancel 与 close 两个事件,并保留 returnValue 的结果语义。163 收藏 -
Golang · Go问答 | 1星期前 | TLS · Go问答 · 后量子密码 · 配置排查 · GODEBUG Go 1.27 TLS 1.3 MLKEM1024 CurvePreferences
Go 1.27 为 crypto/tls 增加 MLKEM1024。本文用最小配置和握手检查说明 CurvePreferences 如何显式声明候选组,以及 tlsmlkem、tlssecpmlkem 何时只影响默认选择。163 收藏 -
Go 的 map 遍历顺序没有语言保证,测试不应直接比较遍历结果的顺序;本文用排序、集合比较和显式顺序建模解决这类不稳定断言。163 收藏 -
Go 容器内存限制不是 GOMEMLIMIT 的等价物。本文区分 cgroup 硬上限、Go 运行时软上限和 GOGC,并给出预留余量、指标观测与灰度回滚方法。163 收藏 -
Python sqlite3 中 execute() 成功只代表 SQL 已执行,不代表事务已经提交。本文解释默认事务模式、isolation_level=None、Python 3.12+ autocommit 与 with 连接管理器的区别,并给出可直接排查提交边界的示例。163 收藏 -
Golang · Go问答 | 4天前 | map · 数据竞争 · go并发 · Go问答 · Go sync.Map sync.RWMutex atomic.Value 并发读取 map lookup
Go map 只有在所有 goroutine 都只读、没有任何写入时才可以安全并发读取。本文区分只读快照、sync.RWMutex、sync.Map 与 atomic.Value 复制替换,说明读写混合场景如何选择同步边界,并用 -race 检查遗漏。163 收藏 -
Java 虚拟线程进入 synchronized 并不等于一定发生 pinning。本文按 JDK 版本、JFR 事件和 tracePinnedThreads 堆栈,说明如何确认载体线程是否被占住,以及什么时候该换成 ReentrantLock。163 收藏 -
Go 1.27 已支持具体类型的泛型方法,但旧工具链、低版本 go.mod 和接口方法仍有边界。本文用 Box、Pair 示例说明排错与兼容写法。163 收藏 -
Go 中读取 uint64 乘法高位应使用 math/bits.Mul64,它返回完整乘积的 hi 高 64 位和 lo 低 64 位。本文说明最小写法、溢出判断、类型边界和测试对照,避免先相乘再移位导致高位丢失。163 收藏