用 Go 通过 SMTP 发邮件

用标准库 net/smtp 连接 QQ 邮箱发信的完整代码,包括授权码、PlainAuth 认证、收件人列表和中文标题的编码处理。

技术笔记 / GoGo邮件SMTPnet/smtp

Go 零散笔记:格式化占位符、数组去重与环境变量

平时写 Go 攒下的一堆小知识点:fmt 各种占位符的区别、数组去重、go env -w 和 export 的优先级、以及一些容易记错的语法细节。

技术笔记 / Go笔记Gofmt切片

GORM 使用笔记:多对多、子对象与自增 ID

记录使用 GORM 时遇到的几类问题:多对多关联保存、插入对象时子对象被自动创建、自定义主键生成、以及用 BeforeCreate 钩子统一处理。

技术笔记 / Go数据库GoGORMORM

用 Go 定时拉取 Git 仓库的最新内容

用 Go 起一个常驻进程,按固定间隔执行 git pull 并在内容有更新时做后续处理,附完整代码和作为服务运行的方式。

技术笔记 / GoGitGo定时任务

Go 里哪些资源必须手动释放

文件句柄、网络连接、HTTP 响应体、数据库连接、channel 等资源在 Go 里都不会自动回收,本文逐条列出必须 Close 的对象和正确的写法。

技术笔记 / GoGo资源管理内存泄漏

用 logrus + lumberjack 做 Go 应用日志

logrus 的分级日志与格式化输出,配合 lumberjack 实现按大小切割、按数量保留的日志轮转,以及怎么把日志同时写到文件和控制台。

技术笔记 / GoGo日志logruslumberjack

用 Docker 做 cgo 交叉编译

cgo 交叉编译最大的麻烦是本地缺目标平台的 C 工具链,用官方提供的交叉编译镜像挂载源码目录就能一次搞定。

技术笔记 / GoDockerGocgo交叉编译

Go 结构体标签(Tag)的用法与常见坑

结构体标签的语法、反射怎么读取,以及 json、gorm、validate 各自常用的标签写法与拼写错误导致的静默失效。

技术笔记 / GoGo结构体Tag反射

Go 各数据库的连接字符串与连接池配置

sqlite、MySQL、PostgreSQL 以及 InfluxDB 在 Go 里的连接字符串写法,并说明连接池的四个参数分别控制什么、怎么按业务设置。

技术笔记 / Go数据库GoGORM连接池

把 Go 应用做成 systemd 系统服务

systemd 是什么、unit 文件怎么写,以及把 Go 编译出来的二进制注册成开机自启、崩溃自动重启的系统服务的完整步骤。

技术笔记 / GoLinuxsystemd部署Go

Go 里 time.Parse 和 Format 的时区坑

time.Parse 默认按 UTC 解析,而 time.Format 输出用的是本地时区,两者不一致时时间会莫名其妙差几个小时,本文给出正确的处理方式。

技术笔记 / Go时区Gotime

Go 好用的库与框架清单

平时收集的 Go 开源库:websocket、进程管理、磁盘查看、内存数据库,以及 ORM 和 REST 框架的选型备忘。

技术笔记 / Go工具Go开源库框架

Go 读取文件的四种方法(附取文件名的小技巧)

os.ReadFile、bufio 逐行读、io.Copy 和文件切片,四种读文件的写法各自适合什么场景,以及从完整路径里取文件名、去后缀的常用函数。

技术笔记 / GoGo文件iobufio

把 Go 代码编译成 DLL 给别的程序调用

用 cgo 的 //export 注释把 Go 函数导出,编译成 Windows 的 DLL,并在 C# 等语言里调用,附编译命令和常见报错。

技术笔记 / GoGoDLLcgoWindows

Go 业务开发常用的几个库:各自解决什么问题

把 Go 业务开发里高频用到的几个库按用途分类讲清楚:Web 框架 Gin、日志 zap、JSON 序列化 jsoniter、ORM GORM、定时任务 robfig/cron、依赖注入 wire、协程池 ants,并说明各自的取舍与替代方案。

技术笔记 / GoGo开源库框架选型

go-micro 微服务:用 consul 做服务发现

consul 的安装与开发模式启动、go-micro 服务的注册与发现、以及本地调试时常见的健康检查失败问题。

技术笔记 / Go微服务Gogo-microconsul

Go 的 context 到底怎么用:WithCancel、WithTimeout、WithValue

从 Background 和 TODO 的区别讲起,用可运行的例子说明 WithCancel、WithDeadline、WithTimeout、WithValue 各自解决什么问题,以及为什么 context 要作为函数第一个参数往下传。

技术笔记 / GoGocontext并发源码

站内搜索

没有找到内容!