Go JSON 流式响应入门:边查边写,避免一次性占满内存
很多列表接口一开始会把所有数据查出来,放进切片,再 。数据少时没问题,数据一多,内存会飙升,用户也要等全部数据准备好才能收到响应。对于导出类接口,可以考虑流式 JSON 响应:边查、边编码、边写给客户端。
tag
很多列表接口一开始会把所有数据查出来,放进切片,再 。数据少时没问题,数据一多,内存会飙升,用户也要等全部数据准备好才能收到响应。对于导出类接口,可以考虑流式 JSON 响应:边查、边编码、边写给客户端。
全面讲解如何在 Go 项目中集成 OpenTelemetry,实现 Tracing、Metrics、Logging 三大支柱的可观测性,覆盖自定义 Span、上下文传播、自动埋点、导出到 Jaeger/Tempo、Prometheus 集成和 Grafana 仪表盘
登录状态是 Web 开发绕不开的话题。很多初学者一听到 Session,就会把它想成某种神秘机制。其实从 HTTP 角度看,Cookie 是浏览器保存并自动带回服务端的一小段数据;Session 是服务端用这段数据找到用户状态的一种做法。Cookie 在客户端,Session 数据通常在服务端。
很多人第一次写 Go 程序,是从一个 HTTP 服务开始。但在真实团队里,命令行小工具同样常见:清理过期文件、导入一批 CSV、生成报表、检查接口是否可用。小工具看起来简单,最容易写成“先能跑再说”的样子:路径写死在代码里,超时时间散落在函数里,出了错只打印一行“failed”。等这个工具被同事拿去每天跑,问题就来了。
随着大语言模型(LLM)技术的快速发展,其在自然语言处理、智能客服、内容生成等领域的应用日益广泛。然而,开发高效、可靠的大语言模型应用仍面临诸多挑战,如复杂的流程编排、高维护成本、弱类型语言带来的调试困难等。
Go 1.25 即将到来,带来后量子密码学 crypto/mlkem、Profile-Guided Optimization 增强、net/http 中间件支持、工具链与 go work 改进,以及一系列性能优化。本文带你抢先预览这些激动人心的特性。
很多 Go 初学者会给 HTTP handler 写测试,却不知道怎么给 HTTP 客户端写测试。比如你的服务要调用一个用户中心接口,代码里有 、URL、请求头和 JSON 解码。测试时不可能真的去调用线上用户中心,也不应该为了单元测试启动一整套依赖。标准库里的 提供了一个很实用的工具: 。
用预约提醒场景讲 Go 中 UTC 存储、本地时区展示、time.LoadLocation、ParseInLocation 和跨时区测试。
Kubernetes 和 Apache Mesos 是两种流行的容器编排与资源管理工具,对比分析其架构设计、功能、使用场景、优势与劣势。
Go 项目实战:从零构建完整的 Web 应用 学了这么多 Go 的理论和零散的知识点,是时候来一个完整的项目实战了。今天,我们将从零开始构建一个真实的项目—— 在线任务管理系统(TaskMaster) 。
很多初学者一听到”单元测试”,就想到 mock 框架。其实 Go 里最常用、最舒服的测试替身,往往只是一个小结构体。你定义一个刚好够用的小接口,测试里手写 fake 或 spy,就能验证业务逻辑,而不用真的发邮件、调支付或连外部 API。
有些函数的输出很长,比如生成 Markdown、渲染配置文件、格式化 JSON、生成 SQL。你当然可以在测试里写一个很长的字符串常量,但测试文件会变得难读。黄金文件测试,也叫 golden file test,就是把期望输出放在单独文件里,测试时读取文件并比较。
Go 与区块链:从概念到实现 区块链,这个听起来很神秘的技术,其实核心思想非常简单: 去中心化的、不可篡改的数据账本 。你可能听说过比特币、以太坊,但你知道区块链的底层原理吗? 今天,我们将用 Go 语言从零开始构建一个简单的区块链系统,深入理解区块链的核心概念:区块、哈希、工作量证明、交易、钱包和 P2P 网络。
Go 普通结构体很难直接区分字段未提交、提交 null 和提交空值。本文用自定义 Optional 类型和 UnmarshalJSON 实现三态区分,讲解 PATCH 接口的安全更新策略。
面向 Go 初学者介绍 Go 1.23 range over func 的基本写法、适用场景、与切片返回的取舍,以及如何避免过度设计。
Go GC 调优实战:从理论到实践 你有没有遇到过这样的场景:你的 Go 服务跑着跑着,CPU 突然飙高,响应延迟抖动明显,过了几十毫秒又恢复正常?恭喜你,你遇到了 GC pause。垃圾回收(Garbage Collection,简称 GC)是 Go 语言的核心特性之一。
Go 语言优秀资源整理,为项目落地加速🏃 在 [GitHub](https://github.com/shockerli/go-awesome) 上稳定更新,觉得不错请点个 Star ❤️ 如转载分享,请保留出处,谢谢 😆
用批量处理任务讲 Go channel 流水线的基础写法,包括生产者、工作者、结果汇总、context 取消和 channel 关闭规则,以及多级流水线、背压控制和超时处理。
全面介绍 Go 语言中的消息队列实战,包括 Kafka 生产者与消费者、Kafka Streams、RabbitMQ 集成、AMQP 协议、消息模式、错误处理和死信队列
讲 Go 程序如何通过 ldflags 注入版本号、Git commit 和构建时间,并在 CLI 或 HTTP 健康检查中展示。