Go HTML 模板安全入门:自动转义、模板函数和页面渲染边界
从一个小型页面开始讲 Go html/template 的自动转义、安全边界、模板函数和常见误用,适合刚开始写 Go Web 页面的读者。
tag
从一个小型页面开始讲 Go html/template 的自动转义、安全边界、模板函数和常见误用,适合刚开始写 Go Web 页面的读者。
用一个简单登录态示例讲 Go 中 Cookie、Session ID、HttpOnly、Secure、SameSite、服务端存储和退出登录的基本设计。
写 Go 服务时,调用外部接口慢是很常见的问题。日志里只看到“请求花了 2 秒”,但这 2 秒到底花在哪里?是 DNS 慢、建立连接慢、TLS 握手慢、服务端处理慢,还是响应体下载慢?如果只能靠猜,排查会很痛苦。
深入探索 Go 1.22 的重要特性:range over integers、math/rand/v2 包、ServeMux 路由增强、性能优化与迁移指南
Go 加入泛型后,Contains、Map、Filter、Set 等工具函数可以天然复用。本文讲解类型参数、约束、泛型切片工具、可比较类型和业务代码中的使用边界。
很多小型 Go 服务都有一个内部页面:查看任务队列、触发一次同步、检查缓存状态。它不一定值得接入完整登录系统,但也不能裸奔在公网。HTTP Basic Auth 是一个简单选择。浏览器会弹出用户名密码框,请求头里带上凭据,服务端验证后再允许访问。
2023 年 Go 语言年度回顾与展望 2023 年是 Go 语言发展历程中非常重要的一年。从 2009 年开源至今,Go 已经走过了 14 个年头。这一年,Go 发布了两个重要版本(1.20 和 1.21),生态系统持续壮大,社区活跃度再创新高。
Go 的测试工具很朴素,没有复杂的断言 DSL,也没有必须学习一整套框架的压力。你只要创建一个 文件,写一个 ,再运行 ,就已经能开始了。也正因为它朴素,很多初学者会在项目变大后遇到另一个问题:测试越写越散,失败信息不清楚,新增一个场景要复制一段函数,最后大家都不太愿意补测试。
面向 Go 初学者的基准测试实践:从 testing.B、-benchmem、字符串拼接、切片预分配到如何判断一次优化是否真的有价值。
Go 安全编程:防范常见漏洞 安全是软件开发中最容易被忽视,却又最重要的环节。你可能写出功能完美、性能卓越的代码,但只要一个安全漏洞,就可能让整个系统崩溃,甚至导致用户数据泄露。今天,我们就来深入探讨 Go 语言中的安全编程实践,学习如何防范常见的安全漏洞。
深入探索 Go 1.23 的迭代器特性:range over function、iter 包、Seq/Seq2 模式、惰性求值、与 channel 的对比、性能分析
本文讲解如何用 Go 标准库 flag.FlagSet 实现 add、list、done 这类子命令,帮助初学者组织可维护命令行工具。
Go 项目结构:构建可维护的大型项目 你是否遇到过这样的场景:打开一个 Go 项目,看到所有代码都堆在 里,或者目录结构混乱得像一盘意大利面?随着项目规模增长,这种混乱的结构会让你每次修改代码都像是在拆炸弹——稍有不慎就会引发连锁反应。
Go 1.21 泛型增强:cmp 包与内置 min/max Go 1.18 引入泛型后,社区反响热烈,但也伴随着一些疑问:「泛型是好东西,但标准库什么时候能用上?「 这个疑问非常合理。Go 1.18 虽然引入了类型参数的语法,但标准库中几乎没有使用泛型的包。
本文讲解 Go HTTP ResponseController 的基本使用场景,包括 Flush、写入截止时间、流式响应、SSE 实现和请求取消监听,帮助理解响应控制边界。
全面掌握 Go 测试进阶技巧:表驱动测试、子测试、测试辅助、Mock 模式、集成测试、基准测试、模糊测试、覆盖率分析与 CI/CD 集成
深入探索 Go 1.21 引入的 cmp、slices、maps 三个标准库包,掌握基于 cmp.Ordered 约束的集合操作,告别手写循环
Go 1.21 将 slices、maps、cmp 包引入标准库,统一了 Contains、Clone、Equal、SortFunc 等常见操作。本文讲解用法、性能考量和升级旧工具函数的注意事项。
Go 1.21 slog:标准库的结构化日志 日志,是每个后端工程师绕不开的话题。你可能用过 、 、 这些第三方库,也可能还在用标准库的 包拼接字符串。不管怎样,Go 1.21 给你带来了一个「迟到但正确「的礼物—— 包。
全面掌握 Go HTTP 服务器的生产级模式:Go 1.22 增强路由、中间件、优雅停机、健康检查、Request ID、超时处理