Go语言技术文章
-
文件测试最容易留下脏现场:固定目录会互相覆盖,手写清理又常常漏掉失败分支。本文用 testing.TB.TempDir 完成隔离实验,核对目录生命周期、并发测试和清理顺序。379 收藏 -
文章 · 前端 | 5天前 | javascript · 前端性能 · 浏览器API · AbortSignal 前端性能 scheduler.postTask Prioritized Task Scheduling
用一个小型任务调度器示例说明 scheduler.postTask 的优先级、AbortSignal 取消和 scheduler.yield 让出主线程边界,并给出浏览器能力检测与降级写法。138 收藏 -
Linux 服务改完 unit 文件却在重启后表现不一致时,按 daemon-reload、enable、start 和 is-enabled 的职责顺序排查,分清重新读取配置、开机启用与当前启动状态,再用 status 和 show 验证实际生效内容。365 收藏 -
functools.singledispatchmethod 可以让同一个类方法按第一个非 self 参数的运行时类型选择实现。本文从注册、调用、装饰器顺序和子类继承四个边界拆开验证,给出适合消息解析与命令分发的落地写法。329 收藏 -
文章 · java教程 | 5天前 | Java教程 · MethodHandles · 模块系统 · java 私有成员 privateLookupIn MethodHandles.Lookup 模块边界
Java MethodHandles.Lookup 不是绕过权限的万能钥匙。本文用 privateLookupIn、findVirtual 和 lookupModes 拆开私有成员访问的调用链,并验证同模块、跨模块和模块未开放时的边界。376 收藏 -
文章 · php教程 | 5天前 | 面向对象 · php教程 · PHP 8.4 · 兼容性迁移 · 动态属性 PHP 8.4 AllowDynamicProperties PHP迁移 deprecated
PHP 8.2 起,给未声明属性赋值会触发动态属性弃用提示。本文用一个遗留 User 对象示范如何定位告警、优先声明属性,并在确有兼容需要时使用 #[\AllowDynamicProperties],最后用回归检查确认迁移没有吞掉拼写错误。303 收藏 -
Golang · Go问答 | 5天前 | 性能 · 安全 · 密码学 · Go问答 · API边界 · Go crypto/subtle 侧信道 WithDataIndependentTiming 常量时间
Go 1.24 引入的 crypto/subtle.WithDataIndependentTiming 能在支持的平台上为一段常量时间代码启用架构级时序保护,但它不会把普通的变长代码自动变成常量时间。本文结合 ConstantTimeCompare、闭包边界、panic 清理和非 Arm64 行为,说明什么时候该用、怎么验收。271 收藏 -
Golang · Go教程 | 5天前 | 性能分析 · Go教程 · 并发调试 · runtime/trace · Go goroutine阻塞 runtime/trace trace.NewTask trace.Logf
当 goroutine 偶发卡住时,runtime/trace 能把任务、日志和调度时间线放到同一份证据里。本文用 trace.NewTask、trace.Logf 和 trace.Start/Stop 建立最小采集程序,再说明如何从任务延迟和阻塞区间定位问题。474 收藏 -
用户输入被拼进 Go 正则表达式时,regexp.QuoteMeta 可以把元字符变成字面量。本文用搜索过滤场景拆开转义、拼接、匹配和空输入边界。400 收藏 -
流式调用工具时,参数 JSON 会被拆成多个增量事件,不能把每个片段直接解析。本文用 buffer、JSON.parse 和状态恢复拆开半包边界,给出失败重试与重复调用的防线。197 收藏 -
slog.Handler.WithAttrs 适合把请求或模块共享的属性提前交给 Handler 复用,但它不是可变日志上下文。本文从属性继承、WithGroup 分组和多 goroutine 使用三个边界说明如何减少重复处理并验证输出。351 收藏 -
flag.VisitAll 遍历的是 FlagSet 中已定义的全部参数,而 flag.Visit 只遍历本次 Parse 或 Set 后进入 actual 的参数。本文用一个命令行配置示例拆开两者边界,说明默认值、重复赋值和未解析参数该怎么排查。393 收藏 -
用 INFORMATION_SCHEMA.INNODB_TRX 找出当前 InnoDB 事务,按 TRX_STARTED 判断持续时间,再用 TRX_MYSQL_THREAD_ID 映射到连接,避免把只读会话、锁等待和已结束事务混为一谈。461 收藏 -
在高频日志、协议拼包或批量导出中,fmt.Sprintf 的完整格式化很方便,但单个整数转文本时可能带来不必要的工作。本文用 strconv.AppendInt 与 fmt.Sprintf 的同一输出基准,拆开分配、缓冲区复用和可读性边界,给出可验证的选型规则。277 收藏 -
围绕 Go 1.25 的 crypto.SignMessage 与 MessageSigner,拆解如何让签名封装同时兼容自带哈希和外部哈希的签名器,并验证回退路径与错误边界。490 收藏