MoChengqian opened a new pull request, #389:
URL: https://github.com/apache/dubbo-go-hessian2/pull/389
背景
PR #375 引入了 decode 性能优化,但遗留了多个 CI 问题。PR #382 尝试修复但自身也存在编译错误(未定义的 abs64
函数)、golangci-lint 配置降级、imports-formatter 被移除等问题。
修复内容
- 修复编译错误:将未定义的 abs64() 替换为标准库 math.Abs()
- 修复 CI 配置:Go 版本对齐 1.25,golangci-lint 对齐 v2.4.0,恢复 imports-formatter 格式检查工具
- 修复 go.mod:添加 go 1.25 指令,直接依赖版本保持与 master 一致
- 修复 benchmark:panic(err) 统一替换为 b.Fatal(err),符合 testing 框架规范
- 清理垃圾注释:删除 13 个文件中的 // No third-party imports / // No internal imports
- 恢复被禁用的测试:移除 5 处无条件 t.Skip,恢复 Java 互操作测试在 CI 中的运行
- 还原非惯用改动:还原 date.go、encode.go、string.go、map.go、ref.go 等文件中 switch
语句、time.Equal()、for 循环被改为非惯用写法的代码
- 升级 GitHub Actions:checkout v2→v4,setup-java v1→v4,setup-go v2→v5,优化缓存策略
从原始 PR 中保留的有价值改动
- decode 性能优化(递归深度管理,PR #375 核心成果)
- BenchmarkMultipleLevelRecursiveDepLarge:新增大对象 decode 性能基准测试
- verifyMapStructure:结构化 map 比较,替代原来基于 fmt.Sprintf 的脆弱字符串比较
- Decoder 结构体的 goroutine 安全性文档注释
- 测试文件中的显式类型声明(提升可读性)
测试结果
- go build ./... 通过
- go vet ./... 通过
- TestMultipleLevelRecursiveDep — PASS
- BenchmarkMultipleLevelRecursiveDep — PASS
- 所有纯 Go 编解码测试 — PASS
- Java 互操作测试 — CI 环境(JDK 1.8)下可正常运行
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]