暂无搜索历史
在 Go 语言中,基准测试(Benchmark)是衡量代码性能的标准方式。然而,传统的基准测试写法不仅繁琐,而且容易受到编译器优化的干扰,导致测试结果失真。
在后台开发中,处理外部输入的路径时,若校验不当,攻击者很容易通过构造恶意的相对路径获取服务器敏感数据,这就是经典的路径穿越漏洞。
在构建基于大语言模型(LLM)的 Go 语言应用时,开发者常常会遇到一个棘手的痛点:模型输出的不确定性。尽管在 Prompt 中反复强调“仅返回 JSON 格式...
在 Go 语言的日常开发中,多协程并发读写 map 是一种非常常见的编程错误。当这种错误发生时,程序会立即崩溃,并输出 fatal error: concurr...
超时控制、定时轮询、延迟执行,是 Go 服务里非常常见的需求。看起来只要 time.After、time.NewTimer、time.NewTicker 随手一...
Go 项目调用外部接口时,鉴权、日志和重试很容易散落在业务代码里。net/http 的 RoundTripper 正适合承接这些横切逻辑:它位于 http.Cl...
Go 服务里的资源泄漏,很多不是因为忘记写 Close,而是取消路径没有被认真处理。HTTP 请求超时、上游连接断开、任务被调度器取消时,业务逻辑可能还没有走到...
Go 标准库里有些接口小到近乎朴素,io.Reader 就是典型代表。它只有一个 Read 方法,却贯穿文件、网络、压缩、加密、HTTP 请求体、命令行管道和内...
HTTP 服务被拖垮,不一定来自高并发。更麻烦的情况是慢连接:客户端迟迟不发完请求头,上传接口一点点发送 body,下游接口卡住后响应写不出去。单个连接看起来流...
接口只返回前 100 条记录,进程内存却一直很高;日志解析只保留几 KB 头部信息,几十 MiB 的缓冲区却迟迟不降。这类问题经常被误判为 GC 不够积极,实际...
请求日志读取 Body 后,业务代码解析 JSON 得到 EOF;客户端再次发送同一个请求,服务端收到的 Body 变成空数据。根因相同:Body 是数据流,不...
文件、Socket、GPU 句柄和 C 内存都不受 Go 垃圾回收器直接管理。理想情况下,调用方会及时执行 Close,但复杂控制流中总有可能遗漏。过去,库作者...
Go 并发代码中,经常需要让同一个 goroutine 在不同阶段监听不同事件:任务未启动时不接收数据,队列为空时不向下游发送,某个输入关闭并排空后不再关注它。
测试并发代码时,经常能看到一种熟悉的写法:启动 goroutine,调用 time.Sleep 等一会儿,再检查结果。
反射常用于解析标签、生成配置和实现序列化工具。过去遍历字段,需要先调用 NumField,再按索引获取。
部署 Go 服务时,经常能在退出日志中看到一句 server stopped: context canceled。
写单元测试时,断言通常足以说明代码对不对。但进入接口测试、图片测试或模糊测试后,仅有一句“测试失败”往往不够。
很多开发者把它理解成“限制程序只能使用两个 CPU”,也有人习惯直接调用 runtime.GOMAXPROCS(runtime.NumCPU())。但在容器环境...
一道看似基础、却很容易暴露工程习惯的 Go 面试题是:调用 http.Get 或 client.Do 拿到响应后,为什么总要写 defer resp.Body....
一道常见的 Go 面试题是:把切片传给函数,在函数里执行 append,调用方的数据会不会改变?
暂未填写公司和职称