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

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

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

写了多年 Go Benchmark,为什么你应该用 `b.Loop()`?

Go 1.24 新增的 `testing.B.Loop()`,把基准测试里最常见的两类问题一起收拾了:一类是结果未使用时被编译器优化掉,另一类是初始化和清理阶段需要手动控制计时。对长期维护 Benchmark 的 Go 开发者来说,它不只是写法变短,更直接影响测试结果是否可信。

写了多年 Go Benchmark,为什么你应该用 `b.Loop()`?

Ubuntu 下 Node.js 日志如何实现自动化备份

在 Ubuntu 上给 Node.js 做日志自动化备份,常见方案主要有四类:系统自带的 logrotate、自定义 Shell 脚本配合 cron、PM2 的 pm2-logrotate,以及 rsync 异地同步。它们分别适合本机轮转、定制归档、PM2 托管应用和远程容灾,关键差异在于维护成本、灵活度与备份范围。

Ubuntu 下 Node.js 日志如何实现自动化备份

系统崩溃前,dmesg 里常见的 9 类预警信号

系统并不总是突然崩溃,很多时候内核早已通过 dmesg 发出警告。本文按故障类型梳理常见预兆,结合典型日志关键字,帮助你判断问题更可能出在内核、硬件、驱动、内存还是文件系统。

系统崩溃前,dmesg 里常见的 9 类预警信号

掌握 os/exec 包,轻松搞定 Go 调用外部命令

Go 的 os/exec 包看起来上手简单,但一到输出捕获、超时控制、管道串联和安全处理,很多代码就容易变得粗糙。本文按实际使用场景梳理常见调用方式、Cmd 配置重点和避坑原则,帮助你判断什么时候该用 Output、Run、Start/Wait,以及怎样把外部命令调用写得更稳。

掌握 os/exec 包,轻松搞定 Go 调用外部命令

Ubuntu 下如何查看 Golang 打包日志:终端、文件、-v 与 -x 用法梳理

在 Ubuntu 下编译 Go 项目时,日志往往就是排错入口。本文把终端实时查看、重定向保存、`-v` 与 `-x` 两类详细输出,以及 VS Code、GoLand 中的查看方式整理成一套实用方法,方便你按问题深度快速选择。 在 Ubuntu 环境里编译 Go 项目时,很多问题并不复杂,真正耽误时间的往往是没有第一时间把日志看全。

Ubuntu 下如何查看 Golang 打包日志:终端、文件、-v 与 -x 用法梳理

深入理解 C#.NET record:不可变对象与值语义的现代实践

`record` 是 C# 9 引入的现代数据模型写法,核心在于不可变设计、值相等语义,以及围绕 `with`、解构、模式匹配展开的一整套用法。本文从语法、行为差异到适用边界梳理 `record`、`record struct` 与 `class`/`struct` 的取舍。 很多 C# 项目已经开始把 `record` 当作 DTO、配置对象甚至领域模型的默认选项,但它和传统 `class` 的区别并不只是写法更短。

深入理解 C#.NET record:不可变对象与值语义的现代实践

Rust 在 Linux 上如何安装:rustup 标准流程与源码编译说明

在 Linux 上安装 Rust,最稳妥的做法仍然是使用官方的 rustup。它会同时安装 rustc、cargo 和默认稳定版工具链,后续升级、切换版本也更省事。本文按发行版准备依赖、执行安装、处理 PATH、生效验证,并补充仅在特殊需求下才考虑的源码编译路线。

Rust 在 Linux 上如何安装:rustup 标准流程与源码编译说明