Go 与 WebAssembly:从浏览器到边缘计算
全面探索 Go 与 WebAssembly 的结合。从 WASM 基础、编译 Go 为 WASM、js 包浏览器交互、WASI 支持、TinyGo 优化、浏览器扩展开发,到服务端 WASM 和边缘计算,涵盖完整的技术栈和实战案例。
posts
全面探索 Go 与 WebAssembly 的结合。从 WASM 基础、编译 Go 为 WASM、js 包浏览器交互、WASI 支持、TinyGo 优化、浏览器扩展开发,到服务端 WASM 和边缘计算,涵盖完整的技术栈和实战案例。
后台任务失败后要不要重试?答案通常是“要,但不能乱重试”。发送通知、同步数据、生成报表、调用第三方接口都可能遇到临时失败。如果完全不重试,偶发抖动会变成用户可见失败;如果无限重试,可能把一个小问题放大成队列堵塞或外部服务雪崩。
用消息消费 worker 示例讲 context 取消、select 循环、任务超时、资源关闭和测试后台 goroutine 退出。
正则表达式很容易让人又爱又怕。它写得好,可以快速从文本里找出订单号、清理多余空白、判断一个字段是否像手机号;写得太贪,就会变成没人敢改的一串符号。Go 的 包使用 RE2 语法,避免了某些语言里灾难性回溯的问题,但这不代表正则可以随便写。
用头像上传客户端示例讲 Go 如何构造 multipart/form-data 请求,包含文件字段、普通字段、Content-Type 和测试。
系统讲解如何将领域驱动设计(DDD)的思想应用到 Go 项目中,覆盖实体、值对象、聚合、领域事件、仓储、应用服务、限界上下文、防腐层、CQRS 和事件溯源,配合整洁架构的完整实战
HTTP 服务发布或重启时,如果直接杀进程,正在处理的请求可能被中断,用户看到连接错误,后台写入也可能只完成一半。Go 的 可以帮助服务优雅关闭:停止接收新连接,等待已有请求完成,直到超时。本文用一个标准 HTTP 服务讲关闭流程、信号处理和常见边界。
用请求计数和开关状态示例讲 Go sync/atomic 的基本类型、Add、Load、Store,以及 atomic 不适合复杂状态的边界。
用批量插入任务示例讲 database/sql 中 PrepareContext、Stmt、参数绑定、关闭资源和与普通 ExecContext 的取舍。
经常出现在性能优化文章里。它可以复用临时对象,减少分配压力。比如高频请求里不断创建 ,可以考虑用 pool 复用。但 也很容易被滥用:代码复杂了,性能却没明显提升,甚至因为对象没清理干净引入 bug。
CSV 是最不起眼、也最容易出事故的数据格式。运营同事从后台导出一份表,财务系统给你一份结算明细,供应商发来一批商品编码,很多时候都是 CSV。初学者常犯的错误是用 处理。只要字段里出现逗号、换行或双引号,这个办法马上失效。
深入探索如何用 Go 构建 AI 驱动的应用程序。从调用 OpenAI/Claude API、流式响应处理、Function Calling,到向量嵌入、RAG 实现、AI Agent 构建,全面覆盖 Go 与 AI 结合的最佳实践。
讲 context.WithValue 的适用边界:请求 ID、用户 ID、trace 信息可以放,业务参数、可选配置和依赖对象不该乱放。
RoadRunner 是一个用 Golang 编写的高性能应用服务器和进程管理器,主要用于服务 PHP 应用程序,但其架构和插件机制也使得它适用于其它语言和多种应用场景。RoadRunner 的设计初衷是解决传统 PHP 应用在每次请求都要重复初始化环境(如引导文件、依赖注入、框架初始化等)所...
用 HTTP 中间件示例讲 Go 服务里的 gzip 响应压缩,包括 Accept-Encoding、Content-Encoding、小响应跳过和测试。
在微服务架构中,gRPC 作为一种高性能、跨语言的远程过程调用(RPC)框架被越来越多的项目采用。gRPC 默认使用 Protocol Buffers 作为数据序列化格式,具有数据紧凑、解析速度快等优点。但在实际生产环境中,我们常常需要同时支持传统的 RESTful API 接口,原因包括兼容...
很多列表接口一开始会把所有数据查出来,放进切片,再 。数据少时没问题,数据一多,内存会飙升,用户也要等全部数据准备好才能收到响应。对于导出类接口,可以考虑流式 JSON 响应:边查、边编码、边写给客户端。
以下是 Go 1.24 的详细功能和变更说明,结合语言特性、性能优化、标准库改进等核心内容整理而成: 一、语言特性与语法变更 1.泛型类型别名正式支持 在 Go 1.24 中, 带类型参数的泛型类型别名 从实验特性转正为默认支持。
全面讲解如何在 Go 项目中集成 OpenTelemetry,实现 Tracing、Metrics、Logging 三大支柱的可观测性,覆盖自定义 Span、上下文传播、自动埋点、导出到 Jaeger/Tempo、Prometheus 集成和 Grafana 仪表盘
Go 服务里经常有一些资源只需要初始化一次:解析模板、加载规则、创建昂贵对象、读取本地配置。你可以在程序启动时全部准备好,也可以第一次使用时再懒加载。懒加载时最怕并发:多个请求同时进来,发现资源还没初始化,于是重复执行。