为什么在 Go 中应该避免直接返回 Err

在 Go 语言中,错误处理是一个核心设计哲学。通过显式的错误返回值(error 类型),开发者必须直面潜在的问题。然而,许多刚接触 Go 的开发者(甚至是有经验的开发者)常犯一个错误:直接返回原始的 err。这种看似简单的行为,实际上会为代码的调试和维护埋下隐患。 直接返回 err 的问题 1. 错误信息不透明 当你在多层嵌套的函数调用中直接返回 err 时,上层调用者可能完全不知道错误的来源:

Archlinux 部署 Deepseek-R1 蒸馏模型

最近 Deepseek 发布 R1 模型,在网上特别火,正好闲的没事部署一个 7b 版本玩一玩。 使用 ollama 可以简化部署流程,通过 yay -S ollama 安装 ollama 后,启动服务 sudo systemctl start ollama,再运行命令 ollama run deepseek-r1 即可开始对话。 但是很快我发现事情不对,为什么生成速度那么慢?查看资源管理器发现推理运行在 CPU 上,完全没有使用 GPU 加速,于是我开始排查问题。 查看 ollama 服务的日志 journalctl -u ollama -f 发现一行警告 no cuda runners detected, unable to run on cuda GPU,但是我显然是有 CUDA 驱动的。 于是我在网上一顿搜,看到解决方法直接无语。aur 库中除了有 ollama 还有一个 ollama-cuda,需要同时安装才能调用 cuda 加速。

Podman 迁移笔记

最近把各个服务从 Debian 迁移到 Archlinux,顺便把 Docker+Compose 换成 Podman(无根)+Quadlet,期间遇到了一些奇怪问题,记录一下。 当 compose 中有容器间的依赖关系时,podlet compose –pod 生成的配置无法正常工作 podlet 生成时会将依赖关系转换为:
0%