Go 语言编码规范:还要像 Java 一样定义 Service、Dao 和 Controller 吗?

很多 Java 开发者转到 Go 后,仍会沿用 `xxxService.go`、`xxxDao.go`、`xxxController.go` 这类分层命名。问题不在于能不能这么写,而在于这会不会破坏 Go 一贯强调的简洁、领域组织和社区一致性。本文结合 Go 的命名约定与项目结构,说明哪些做法更地道、哪些拆分方式更适合长期维护。

Go 语言编码规范:还要像 Java 一样定义 Service、Dao 和 Controller 吗?

CentOS 中如何用 Golang 打包静态库,并在 C/C++ 项目里调用

这篇文章用一个最小可运行示例,演示在 CentOS 中把 Go 代码编译成可供 C/C++ 链接的静态库。重点包括 Go 环境安装、`//export` 与 `import "C"` 的写法、`-buildmode=c-archive` 的产物,以及 `gcc` 链接时 `-lmylib` 的命名规则。 很多项目并不是纯 Go 环境,尤其在 CentOS 服务器或老的 C/C++ 工程里,常见需求是把一段 Go 逻辑编成静态库直接接入。

CentOS 中如何用 Golang 打包静态库,并在 C/C++ 项目里调用

Go 语言中如何比较两个 map 是否相等?

Go 里的 map 不能像普通值那样直接用 `==` 比较,这一点经常在写判断逻辑时踩坑。本文从原因入手,梳理逐项比对与 `reflect.DeepEqual` 两种常见做法,再结合性能、类型差异和 `nil map` 等细节,帮助你判断什么时候该自己写比较函数,什么时候适合直接用标准库。

Go 语言中如何比较两个 map 是否相等?

CentOS 环境下如何配置 Golang 打包环境

这篇文章梳理了在 CentOS 上配置 Go 打包环境的完整步骤,包括安装 Go、设置 PATH 与 GOPATH、启用 Go Modules、执行本地构建,以及按需进行交叉编译。文中保留了原始命令,适合需要快速搭起可用编译环境的开发者参考。

CentOS 环境下如何配置 Golang 打包环境

使用 Go 语言如何处理大小端字节序?

在 Go 里处理二进制数据时,大小端决定了多字节数值如何写入内存、文件或网络。本文结合 Go 标准库 `encoding/binary` 的常用接口,说明什么时候该用大端或小端、怎样在代码里完成转换,以及实际使用时最容易踩到的几个点。

使用 Go 语言如何处理大小端字节序?

Go语言是用什么语言写的?从 C 起步到完成自举

Go 语言并不是一开始就“用自己写自己”。它最早由 Google 团队先用 C 写出首个编译器,再逐步走向自举。理解这条路径,能更准确判断 Go 的成熟度、工具链设计,以及它为何常被视为务实的系统编程语言。

Go语言是用什么语言写的?从 C 起步到完成自举

Go 里的 `fallthrough` 到底该怎么用

Go 的 switch 默认不会像 C、Java 那样自动穿透,这让 `fallthrough` 成了一个既实用又容易被误用的关键字。本文从默认行为、语法限制、典型场景到替代写法梳理它的真实用法,帮助你判断什么时候该用、什么时候该避开。

Go 里的 `fallthrough` 到底该怎么用

Ubuntu 下编译 Golang 静态库指南:从项目准备到生成 libmylib.a

这篇文章梳理了在 Ubuntu 下把 Go 代码编译成静态库的最小流程,包括环境确认、模块初始化、示例代码编写,以及 `go build` 命令中几个关键参数的作用,适合需要快速产出 `.a` 文件的读者参考。 很多人在 Ubuntu 上第一次尝试把 Go 代码编译成静态库时,卡住的并不是语法,而是搞不清模块文件、构建参数和最终产物之间的关系。

Ubuntu 下编译 Golang 静态库指南:从项目准备到生成 libmylib.a

Golang 日志中并发问题如何解决

Go 自带日志库通常能在多 goroutine 下安全使用,但一旦日志流程碰到共享文件句柄、数据库连接或延迟初始化,就可能出现竞态和数据错乱。本文围绕三种常见处理方式展开:互斥锁、`sync.Once` 与 channel 串行化,帮助你按场景选型。

Golang 日志中并发问题如何解决

Go 测试库怎么选?一套不纠结的选型指南

给 Go 项目补测试时,真正难的往往不是写第一条用例,而是工具选型一开始就走偏。本文按“社区认可度 + 维护活跃度 + 是否仍在明确维护”三条线,梳理测试框架与 Mock 工具的取舍,并给出三套可直接落地的组合建议。

Go 测试库怎么选?一套不纠结的选型指南