golang
已收录文章:14427篇
-
最简路径是直接用msgpack.Marshal和Unmarshal,但需注意三类高频问题:不加msgpack标签、传错指针、混入非msgpack数据;struct字段必须加msgpack:"key"标签,且为导出字段,Unmarshal必须传变量地址(如&v),否则静默失败。307 收藏
-
应避免单独使用time.After做超时控制,因其返回的chantime.Time不可取消;正确做法是在select中同时监听业务channel和time.After返回的通道。413 收藏
-
HTTP缓存头关键字段为Cache-Control、ETag、Last-Modified,其中Cache-Control优先级最高并覆盖Expires,ETag与Last-Modified共存时客户端优先使用ETag校验,ETag值必须用英文双引号包裹。465 收藏
-
sync.Pool不支持按需动态扩缩容,因其无水位监控、无负载反馈、不响应积压,扩容缩容依赖手动Get/Put,且GC会清空池,无长度统计与容量控制接口。287 收藏
-
database/sql的Query和Exec不暴露执行耗时,因标准库抽象屏蔽了驱动细节,返回值无耗时字段,必须在调用链路中手动包裹计时逻辑或通过Context超时机制拦截。203 收藏
-
context.WithValue返回新context而非修改原对象,需显式传递给下游;key必须用不可比较的私有类型(如struct{}),value应为不可变小数据,取值须用双返回值断言防panic。405 收藏