ThinkGo:一个轻量级的 Go 语言 MVC 框架

ThinkGo 是一个主打轻量与表达力的 Go 语言 MVC 框架,覆盖路由、中间件、Session、日志、缓存和 ORM 等 Web 开发常用能力。本文按“适合谁、能做什么、如何快速跑通”来重组内容,并保留安装命令、示例代码和项目地址,方便你判断它是否值得上手。

ThinkGo:一个轻量级的 Go 语言 MVC 框架

什么是 Prompt 注入攻击?如何用 Go 语言筑起防线?

Prompt 注入已经从概念风险变成了 AI 应用里的常见攻击面,尤其在会拼接用户输入、网页内容和外部文档的 Go 服务中更容易出现。本文结合 OWASP 的定义、典型业务场景与 Go 示例代码,梳理直接注入、间接注入和多层防护做法,帮助你判断哪些措施能真正降低风险。

什么是 Prompt 注入攻击?如何用 Go 语言筑起防线?

Go 语言 clear 函数怎么用,一次看懂 map、slice 与泛型场景

Go 1.21 新增的内置函数 clear,专门用于 map 和 slice,但两者的行为并不相同:map 会被清空,slice 只会把元素重置为零值。本文结合官方定义和代码示例,讲清它的适用范围、实际效果,以及在泛型场景下应如何理解。

Go 语言 clear 函数怎么用,一次看懂 map、slice 与泛型场景

Go 语言中关闭的 channel 还能读数据吗?

Go 中关闭 channel 后仍然可以读,但读到什么取决于缓冲区是否还有未消费数据。本文用一段简单实验解释关闭后的读取规则、`ok` 判断方式,以及缓冲与无缓冲 channel 的差异,顺带梳理实际开发里更稳妥的关闭习惯。

Go 语言中关闭的 channel 还能读数据吗?

Ubuntu 中 Go 打包有哪些实用技巧

在 Ubuntu 下打包 Go 项目,关键不只是执行 `go build`,而是把依赖、编译参数、自动化、镜像和兼容性一起纳入流程。本文按常见发布场景梳理一套实用做法,方便你判断该优先优化体积、速度,还是跨平台与容器部署。

Ubuntu 中 Go 打包有哪些实用技巧

Golang 日志中异常信息如何定位

在 Go 项目里,日志不是简单的打印输出,而是定位异常时最关键的现场记录。本文从标准库 `log`、`logrus` 和 `zap` 三种常见方案切入,说明它们分别怎样补齐时间、调用位置、结构化字段与 panic 捕获信息,并给出一套更适合线上排障的判断思路。

Golang 日志中异常信息如何定位

Go 语言中 for 和 range 的性能比较

Go 里 `for` 和 `range` 都能完成遍历,但性能差异并不取决于语法本身,而是取决于元素类型和是否发生拷贝。结合切片、结构体、指针、map 与 channel 的基准结果,可以更准确地判断什么时候该优先可读性,什么时候该回到索引循环。

Go 语言中 for 和 range 的性能比较