程序员茄子
全部
编程
代码
资讯
案例
综合
联系我们
go 相关技术文章(第4页)
php
mysql
shell
go
vue
css
api接口对接
支付接口对接
Go 1.28 计划引入的泛型集合:set.Set、hash.Map、tree.Map 分别补上哪种能力,抽象接口为何暂不导出
编程
Go 1.28 计划引入的泛型集合:set.Set、hash.Map、tree.Map 分别补上哪种能力,抽象接口为何暂不导出
2026-10-27 21:01:38
Go Collections 工作组的伞形提案把泛型集合排进 Go 1.28:规范 set.Set、哈希 Map/Set、树形有序 Map、泛型堆,外加给存量 map[T]bool 的过渡包。逐个说清各自补什么、-With 后缀的取舍,以及抽象接口为何只做文档不导出。
Go
标准库
泛型
string(65) 在 Go 1.28 语言版本下编译失败:用 -lang 复现并迁移到 strconv.Itoa 或 string(rune(n))
编程
string(65) 在 Go 1.28 语言版本下编译失败:用 -lang 复现并迁移到 strconv.Itoa 或 string(rune(n))
2026-10-27 21:01:38
Go 1.28 语言版本收窄了整数到字符串的转换:string(int) 直接编译失败,只接受 byte/rune。用 go tool compile -lang 复现报错原文,再按调用点区分 strconv.Itoa 与 string(rune(n)) 两种迁移写法。
Go
版本升级
编译错误
CA 中间证书私钥泄漏:Go 把黑名单编进 crypto/x509,旧二进制必须重新编译
资讯
CA 中间证书私钥泄漏:Go 把黑名单编进 crypto/x509,旧二进制必须重新编译
2026-10-27 20:04:24
Go 1.27.3 / 1.26.10 只带一个安全修复:因某 CA 中间证书私钥泄漏(CVE-2026-111943),crypto/x509 的 Verify 会过滤掉含这批中间证书的链。黑名单编在二进制里,不是改系统根证书库,所以容器镜像和静态二进制必须重新编译。文中给出 go version -m、govulncheck -mode=binary 的核对命令,以及 Prometheus 镜像重建的做法。
Go
TLS
安全
证书
x509
connect-go v2:砍掉 Request[T] 包装,handler 回归 (*Req) (*Res, error),迁移工具还有四点改不掉
编程
connect-go v2:砍掉 Request[T] 包装,handler 回归 (*Req) (*Res, error),迁移工具还有四点改不掉
2026-10-27 20:03:15
connect-go v2 于 2026-10-07 发布,只破坏 Go API,协议仍兼容。本文按代码对照讲清五处变化:unary 签名去掉 Request[T]/Response[T] 包装、transport 拆出 connecthttp 与 connectinprocess、interceptor 合并成两个函数类型、裸 error 不再上线(只发 CodeUnknown)、metadata 移到 context 里的 CallInfo;再给出 connect-go-v2-migrate 的两遍迁移流程、buf.gen.yaml 与模块路径改动,以及工具改不掉的四个手写点。
Go
connect-go
RPC
Buf
迁移
Beszel 部署排障笔记:两条连接通道、unix socket 与几处静默失败
编程
Beszel 部署排障笔记:两条连接通道、unix socket 与几处静默失败
2026-10-27 00:05:02
Beszel 的 hub/agent 双通道模型决定了排障顺序:同机部署为什么 localhost 不通、host network 与 rootless 容器丢哪些指标、FILESYSTEM/NICS/SMART 必须显式设置的值,以及反代 gzip 掐断 SSE、自签 CA、TRUSTED_AUTH_HEADER 这几个静默失败点。
Beszel
服务器监控
Docker
运维排障
Go
bcrypt 的 72 字节是截断点:Go 报错、PHP 静默截断、WordPress 先 HMAC 再哈希
编程
bcrypt 的 72 字节是截断点:Go 报错、PHP 静默截断、WordPress 先 HMAC 再哈希
2026-10-27 00:04:17
bcrypt 只把前 72 字节送进 Blowfish 密钥调度,第 73 字节起不参与运算。三套实现态度不同:Go 的 GenerateFromPassword 返回 ErrPasswordTooLong,但 CompareHashAndPassword 不检查长度;PHP 只拦 NUL 字节,超长交给 crypt() 截断;WordPress 6.8 先用 HMAC-SHA384 + base64 压到 64 字符再哈希,输出带 $wp 前缀。给出可复现代码、cost 与 rehash 升级做法,以及 OWASP 当前参数值。
bcrypt
密码哈希
Go
PHP
安全
PocketBase v0.40.6:缩略图有了像素上限,更新命令也不再走 GitHub
资讯
PocketBase v0.40.6:缩略图有了像素上限,更新命令也不再走 GitHub
2026-10-26 21:34:24
PocketBase v0.40.6 把缩略图生成的像素上限做成全局限制(默认 250<<20,PB_THUMBS_MAX_SOURCE_PIXELS 可调),根因是 Go image.Decode 缺少解码选项;同时更新命令改为从 ganigeorgiev.com 拉版本,这很可能是 GitHub 上最后一个 release。附 CI 与上传入口的改动建议。
Go
PocketBase
后端
发布说明
pkg.go.dev 开放查询 API:GET-only、/v1beta,包路径有歧义时必须显式指定 module
编程
pkg.go.dev 开放查询 API:GET-only、/v1beta,包路径有歧义时必须显式指定 module
2026-10-26 21:33:41
pkg.go.dev 官方查询 API 的工程笔记:GET-only /v1beta 端点、OpenAPI 契约、version 参数解析伪版本的规则,以及「精度优先」带来的坑——包路径存在于多个模块时 API 会报歧义错误,必须显式带 module。附 curl 输出字段和 pkgsite-cli 的安装与用法。
Go
工具链
API
包管理
稳定性
Go 1.27 的 HTTP/1 连接复用:不读完 resp.Body 也不会再丢连接,代价是 50ms/256KB 的后台排空
编程
Go 1.27 的 HTTP/1 连接复用:不读完 resp.Body 也不会再丢连接,代价是 50ms/256KB 的后台排空
2026-10-26 21:04:00
同一个只看状态码的 Go 函数,Go 1.26 上打 100 次要 710ms,1.27 上只要 150ms。差别在 HTTP/1 连接复用:响应 body 没读到结尾时旧版本直接弃连接。这篇讲清 RTT 成本、json.Decoder 少读一个换行导致复用失败,以及 1.27 里 Transport 异步排空 50ms/256KB 的行为。
Go
HTTP
性能优化
同一条 UPDATE,Go 返回 0、Node 返回 1:MySQL 的 changed 与 matched 不是一回事
编程
同一条 UPDATE,Go 返回 0、Node 返回 1:MySQL 的 changed 与 matched 不是一回事
2026-10-26 00:03:57
乐观锁判定踩的坑多半不在 version 字段,而在 affected-rows 语义:MySQL 默认返回实际改动行数,带 CLIENT_FOUND_ROWS 才返回匹配行数。同一个 0 既可能是"没匹配到"也可能是"值没变"。本文对照 go-sql-driver、mysql2、JDBC 的默认值差异,给出 Go 侧判定、连接池拆分与抖动重试写法。
乐观锁
MySQL
并发控制
CAS
Go
RowsAffected
clientFoundRows
Staticcheck 2026.2.2 升上去:SA4023 重写会翻转旧结论,SA5011 被停用
编程
Staticcheck 2026.2.2 升上去:SA4023 重写会翻转旧结论,SA5011 被停用
2026-10-26 00:03:45
Staticcheck 2026.2 重写了 SA4023、停用 SA5011、新增 SA9010,升级后同一份代码的告警会增减甚至翻转。这篇按检查分组列出实际变化:SA1019 覆盖结构体字面量弃用字段、SA4006 支持复合赋值、U1000 泛型误报减少、S1005 放宽 map 索引,以及 2026.2.1/2026.2.2 连修的三处崩溃,最后给升级核对顺序与命令。
staticcheck
Go
lint
SA4023
SA5011
SA9010
代码质量
git-ai:几十个 agent 抢同一个分支,把 merge queue 换成 compare-and-swap
编程
git-ai:几十个 agent 抢同一个分支,把 merge queue 换成 compare-and-swap
2026-10-25 21:31:02
git-ai 是照着 Anthropic Scion 公开设计写的 Go 版本控制系统,fork 自 Gitaly:用 compare-and-swap 和批次落地替代 merge queue,changeset log 记录每次更新与执行者,模型解冲突只算 proposal、必须过 verify.command 才落地。含 50 agent 并发落地的 benchmark 数据、构建步骤与当前限制。
Git
AI
Agent
Go
开源项目
版本控制
gopls v0.24.0 的交互式重构:以前加 struct tag 只能默认 json + camelCase
编程
gopls v0.24.0 的交互式重构:以前加 struct tag 只能默认 json + camelCase
2026-10-25 21:02:18
gopls v0.24.0 起支持交互式重构:LSP 提案让语言服务器在算编辑前先问参数。本文拆「Add struct tags」从只能默认 json+camelCase 到可选 tag 组合与命名约定、泛型接口自动生成方法桩、跨包移动声明时如何只带走 Foo 用到的符号与 import。
Go
gopls
LSP
重构
go fix 一行没改:go 指令门槛、四个新 modernizer 与默认关掉的那四个
编程
go fix 一行没改:go 指令门槛、四个新 modernizer 与默认关掉的那四个
2026-10-25 20:01:41
升级 Go 工具链后跑 go fix ./... 却没改动任何文件,通常是 go.mod 的 go 指令没跨过 modernizer 的版本门槛。本文给出 -diff 预览、分批 review、多平台各跑一遍的正确用法,拆解 atomictypes、embedlit、slicesbackward、unsafefuncs 的替换规则,并说明 appendclipped、bloop、fmtappendf、slicesdelete 为什么被默认关闭。
Go
go
fix
modernizer
工具链
代码重构
幂等键有保质期:Idempotency-Key 过期后,同一个键的重试就是一次新请求
编程
幂等键有保质期:Idempotency-Key 过期后,同一个键的重试就是一次新请求
2026-10-25 00:04:12
重复扣款的根因常常不是中间件写错,而是没人定义过幂等键能活多久。这篇按 IETF draft-ietf-httpapi-idempotency-key-header-08 讲清 400/409/422 的分工、Structured Field 值的引号坑、保留期与客户端重试窗口/对账窗口怎么嵌套,给出 PostgreSQL 表与 Go 抢占-比对指纹-回放响应的实现,并把 Stripe API v1 的 24 小时与 v2 的 30 天差异对上。
幂等键
Idempotency-Key
幂等防重
重放窗口
接口设计
Go
PostgreSQL
goroutineleak profile:在 pprof 里只看到真正泄漏的 goroutine
编程
goroutineleak profile:在 pprof 里只看到真正泄漏的 goroutine
2026-10-24 21:03:11
goroutine profile 分不清泄漏和「流量高时临时阻塞」,少量泄漏可能几年都看不出来。Go 1.27 的 goroutineleak profile 换了个判定方式:只把未阻塞的 goroutine 当 GC 根,迭代标记出真正活着的,剩下的才算泄漏。本文给出采集命令、pprof 定位到具体 send 行的过程、四个真实泄漏模式和它的覆盖边界。
Go
pprof
并发
泛型方法终于能挂在类型上了:List.Map 的写法、method expression 与接口方法的边界
编程
泛型方法终于能挂在类型上了:List.Map 的写法、method expression 与接口方法的边界
2026-10-24 21:02:20
Go 1.18 给了类型和函数类型参数,方法一直没份。Go 1.27 让具体方法也能声明自己的类型参数,List.Map 的链式写法不必再退化成包级 MapList。本文给出两种写法对照、method expression 还原函数式调用的方式,并解释为什么接口方法仍然不能带类型参数。
Go
泛型
语言特性
Go 1.27 给 80 字节以内的分配加了专用函数,16/24 字节收益最大
编程
Go 1.27 给 80 字节以内的分配加了专用函数,16/24 字节收益最大
2026-10-24 20:01:00
Go 1.27 把 80 字节以内的堆分配按 span class 生成专用 mallocgc 函数,小对象分配快 20–30%。本文拆开 size class 与 span class 的关系、为什么停在 80 字节(指令缓存代价)、清零指令如何省掉一次 memclr 调用,以及用 GOEXPERIMENT=nosizespecializedmalloc 回退的方法。
Go
内存分配
GC
性能优化
运行时
Go 1.27 运行时迁移:asynctimerchan 被移除,traceback 头部会带 pprof 标签
编程
Go 1.27 运行时迁移:asynctimerchan 被移除,traceback 头部会带 pprof 标签
2026-10-23 21:07:04
Go 1.27 移除了 asynctimerchan,time 包 channel 永远无缓冲,Stop 后手动排空的旧写法可能永久阻塞;同时 go 指令 1.27 的模块,traceback 头部会带上 pprof 标签。给出改写方式与验证代码。
Go
运行时
迁移
go fix 换了分析器名:waitgroup 改成 waitgroupgo,CI 里那行 -run 会静默失效
编程
go fix 换了分析器名:waitgroup 改成 waitgroupgo,CI 里那行 -run 会静默失效
2026-10-23 21:05:56
Go 1.27 的 go fix 新增 atomictypes、embedlit、slicesbackward、unsafefuncs 四个 modernizer,删掉 fmtappendf,waitgroup 改名 waitgroupgo。本文给出 -diff 审查流程、CI 脚本适配,以及为什么改了名却不报错。
Go
工具链
CI
订单状态机的状态语义与恢复路径:Closed 可恢复,Cancelled 只退款
编程
订单状态机的状态语义与恢复路径:Closed 可恢复,Cancelled 只退款
2026-10-23 00:03:59
把订单的「已关闭」和「已取消」合成一个终态,支付回调晚到就只能人工对账。这篇按 orderflow 的六状态枚举和 CanTransitionTo 迁移表,拆开两条恢复路径:Closed 先 QueryOrder 复核、校验金额,再走独立的 CASReopenPaid 逆向恢复并触发 OnReopened;Cancelled 保持不动,只以 (order_no, trade_no) 唯一键写退款 outbox。附 CAS 条件更新 SQL、OnPaid 失败停在 Paid 的 fallback 重扫,以及状态机适用边界。
订单状态机
状态机
支付回调
订单关单
CAS
幂等
Go
Go 1.27.2 的两个 CONNECT 连接错位问题:反向代理侧怎么排查和处置
编程
Go 1.27.2 的两个 CONNECT 连接错位问题:反向代理侧怎么排查和处置
2026-10-22 21:04:31
Go 1.27.2 修掉两个 CONNECT 连接错位:客户端 Transport 把带 body 的 CONNECT 发出去后又把连接放回空闲池,服务端返回 2xx 却没 hijack 时继续按 HTTP 读。说明触发条件、共享 Transport 下的跨用户响应投毒与请求走私、自查命令和缓解方式。
Go
net
http
反向代理
安全
升级 Go 1.27 后 JSON 接口的行为变化:v1 默默接受的输入,v2 默认报错
编程
升级 Go 1.27 后 JSON 接口的行为变化:v1 默默接受的输入,v2 默认报错
2026-10-22 21:02:02
Go 1.27 把 encoding/json 换成了 v2 后端:非法 UTF-8、对象内重复键从「静默容错」变成报错。整理两类输入的表现差异、错误文案变化的排查方式、jsontext 流式校验、v1 语义 Options 与 GOEXPERIMENT=nojsonv2 兜底,以及 format/unknown/inline 等选项的移除与改名。
Go
encoding
json
JSON
升级兼容
投诉回调收不到、回复一直 400、complete 调早了:微信支付消费者投诉 2.0 服务端排障
代码
投诉回调收不到、回复一直 400、complete 调早了:微信支付消费者投诉 2.0 服务端排障
2026-10-22 09:02:14
投诉单在商户后台看得到、系统里却收不到,回复接口一直返回 400,complete 调早了被用户重复投诉——这三件事都出在微信支付消费者投诉 2.0 的服务端对接细节上。文中说明回调地址必须先调创建接口、通知解密后只有 complaint_id 与 action_type、5 秒应答与重投的幂等处理、response 接口四种 400 的成因(含文档 500/200 字符不一致),以及未收到回调时怎么用详情/列表接口补单。
微信支付
支付对接
接口排障
Go
客诉处理
大家都在搜索什么?
devops
易支付
一个官网+多少钱
统一接受回调
统一回调
python
sub
node
宝塔日志
mysql
shell
ElasticSearch
css
vue
api接口对接
2025
支付接口对接
go
php
php回调
上一页
1
2
3
4
5
6
7
…
25
下一页
共 25 页
到第
页
确定