GORM v1.25 错误处理机制的变化

传统的错误处理方式 在 GORM 的使用过程中,gorm.ErrNotFound 是最基础且使用最广泛的错误类型。作为开发者,我们习惯性地使用这种方式来处理查询未找到记录的情况: ...

2024-11-01

构建跨平台 Go 服务

背景 过去,我一直在使用 x86_64 架构的 MacBook Pro 进行开发,服务器环境则是 x86_64 架构的 CentOS,因此从未担心过多架构的 Docker 镜像构建问题。 然而,公司最近更新了一批 M1 MacBook Pro。 ...

2023-09-20

Go RPC 初探

RPC 技术分享 RPC 介绍 远程过程调用(Remote Procedure Call 缩写 RPC)是一个计算机通信协议,通俗来讲就是调用远程服务上的一个函数,在调用时将对象名、函数名、参数等传递给远程服务器,服务器将处理结果返回给客户端,客户端调用 server 端提供的接口就像是调用本地的函数一样。 RPC 的消息可以通过 TCP、UDP 或者 HTTP 等传输。 ...

2022-04-19

Go 之 Delve 调试

准备工作 安装 delve 项目代码 1 2 git clone git@git.baijiashilian.com:web/demo/go-debug-demo.git git clone git@git.baijiashilian.com:web/gotools/gitlab-tools.git 调试工具 delve delve 安装 https://github.com/go-delve/delve/tree/master/Documentation/installation 1 go install github.com/go-delve/delve/cmd/dlv@latest dlv 配置 1 ~/.dlv/config.yml 调试方式 本地调试 从源码开始编译并开始调试 1 dlv debug [package] [flags] 调试已经编译好的二进制文件 1 dlv exec ./hello -- args1 args2 编译的时候需要禁用编译器优化:go build -gcflags="-N -l" 编译选项有哪些:go tool compile -h 调试正在运行的进程 1 dlv attach pid [executable] [flags] 调试单元测试 1 dlv test [package] [flags] 远程调试 JSON-RPC & DAP 1 dlv --headless --listen 0.0.0.0:2345 <command> <target> <args> 兼容dlv connect、VS Code Go、GoLand ...

2022-03-20