Go 入门:随机数别乱用,Token 要用 crypto/rand
随机数是入门时很容易被低估的主题。math/rand 适合模拟和非安全场景,crypto/rand 才适合 Session、验证码、重置链接等安全场景。本文讲解两类随机数的正确使用和 Token 安全设计。
tag
随机数是入门时很容易被低估的主题。math/rand 适合模拟和非安全场景,crypto/rand 才适合 Session、验证码、重置链接等安全场景。本文讲解两类随机数的正确使用和 Token 安全设计。
日志不是程序最后随手加的一行 。线上排查问题时,日志经常是第一证据:哪个用户触发了请求、参数是什么、调用下游花了多久、错误发生在哪一层。纯文本日志能看,但不方便检索。结构化日志把关键信息放到字段里,日志平台可以按字段过滤、聚合和统计。
全面讲解 Go 生态中的数据库迁移方案,涵盖 goose 和 golang-migrate 两大主流工具的实战用法,以及迁移文件规范、版本控制、数据迁移、测试策略、CI/CD 集成和生产环境最佳实践
监听文件变化常见做法是使用 fsnotify 这类库。但有些小工具不想引入依赖,只需要每隔几秒检查配置文件是否变了。这时轮询修改时间是一个简单可控的方案。它不够实时,但容易理解,也适合入门。本文用配置热加载示例讲如何轮询文件变化,以及它的边界。
系统讲解 Kubernetes Operator 模式,使用 kubebuilder 和 controller-runtime 构建自定义控制器,覆盖 CRD 定义、Reconciliation Loop、Finalizer、Status 管理、Webhook、测试和部署的完整实战
写 JSON API 时,校验是绕不开的。字段缺失、字符串太长、枚举值不合法、嵌套数组为空,这些都应该在进入业务逻辑前拦住。很多项目会使用校验库,这没问题;但初学者最好先理解不用框架时规则应该放在哪里、错误怎么组织。
限速听起来像网关和高并发系统才需要的能力,其实入门项目也经常遇到。比如你要批量同步 5000 个客户资料到第三方 CRM,对方文档写着每秒最多 5 次请求。如果你开 50 个 goroutine 一口气打过去,很快就会收到 429,严重时还会被封禁。
用图片转换命令示例讲 os/exec 的基本用法,包括 CommandContext、stdout/stderr、参数传递和安全边界。
大多数 Go 测试只需要普通 TestXxx,但有时一个包里的多组测试需要共享准备工作,比如创建临时目录、启动测试服务器、准备测试数据库连接。TestMain 可以在一个测试包运行前后执行统一逻辑。本文讲 TestMain 的基本结构和边界。它有用,但不要滥用。很多测试用 t.TempDir、helper 和子测试就够了。
很多 HTTP 客户端 bug 都来自手写 URL。Go 标准库的 net/url 可以安全处理路径和查询参数,本文讲解 url.Values、PathEscape、ResolveReference 和常见安全误区。
全面探索 Go 与 WebAssembly 的结合。从 WASM 基础、编译 Go 为 WASM、js 包浏览器交互、WASI 支持、TinyGo 优化、浏览器扩展开发,到服务端 WASM 和边缘计算,涵盖完整的技术栈和实战案例。
用消息消费 worker 示例讲 context 取消、select 循环、任务超时、资源关闭和测试后台 goroutine 退出。
正则表达式很容易让人又爱又怕。Go regexp 包使用 RE2 语法,适合做格式匹配、简单提取和文本替换。本文讲解预编译、分组提取、性能优化和常见误区。
用头像上传客户端示例讲 Go 如何构造 multipart/form-data 请求,包含文件字段、普通字段、Content-Type 和测试。
系统讲解如何将领域驱动设计(DDD)的思想应用到 Go 项目中,覆盖实体、值对象、聚合、领域事件、仓储、应用服务、限界上下文、防腐层、CQRS 和事件溯源,配合整洁架构的完整实战
HTTP 服务发布或重启时,如果直接杀进程,正在处理的请求可能被中断,用户看到连接错误,后台写入也可能只完成一半。Go 的 可以帮助服务优雅关闭:停止接收新连接,等待已有请求完成,直到超时。本文用一个标准 HTTP 服务讲关闭流程、信号处理和常见边界。
用批量插入任务示例讲 database/sql 中 PrepareContext、Stmt、参数绑定、关闭资源和与普通 ExecContext 的取舍。
CSV 是最不起眼、也最容易出事故的数据格式。运营同事从后台导出一份表,财务系统给你一份结算明细,供应商发来一批商品编码,很多时候都是 CSV。初学者常犯的错误是用 处理。只要字段里出现逗号、换行或双引号,这个办法马上失效。
深入探索如何用 Go 构建 AI 驱动的应用程序。从调用 OpenAI/Claude API、流式响应处理、Function Calling,到向量嵌入、RAG 实现、AI Agent 构建,全面覆盖 Go 与 AI 结合的最佳实践。
在微服务架构中,gRPC 作为一种高性能、跨语言的远程过程调用(RPC)框架被越来越多的项目采用。gRPC 默认使用 Protocol Buffers 作为数据序列化格式,具有数据紧凑、解析速度快等优点。但在实际生产环境中,我们常常需要同时支持传统的 RESTful API 接口,原因包括兼容...