主页 | Web版 | 订阅 | 归档 | Feed

GopherDaily

20260325

每日一谚:任何足够复杂的技术本质上都是不可靠的,无论它表现得多好。— Arthur C. Clarke


Go技术生态

Go 语言之父亲自下场道歉:藏在 Spec 里的十年“笔误”,终于要修正了!
就在最近,Go 官方 GitHub 仓库中,一个看似在“抠字眼”的 Issue #78208(spec: contradiction in Types section)引来了社区里多位Go开发者下场激烈辩论,最终甚至连 Go 语言三巨头之一、被誉为“Go 语言之父之一”的 Robert Griesemer 都亲自现身,发表了一段长文来“认错”,并用拉丁语写下了那句沉重的 “Mea culpa”(我的锅)。

【构建工业级Agent Skills】04 盲测与进化:如何让 AI 自己证明“新版本比老版本强”?
今天,我们将深入 skill-creator 最令人惊叹的特性:盲测对比系统(Blind Comparison System)。 我们将从上帝视角,剖析 `skill-creator` 是如何引入“盲测裁判(Blind Comparator)”和“复盘分析师(Post-hoc Analyzer)”这两个独立智能体,在剥离一切人类偏见的情况下,实现Agent Skill 的“自我进化”的。

Go 1.26 新增源码级函数内联工具
Go 1.26 引入了全新的 `go fix` 子命令实现,其中一个重要特性是源级别(source-level)函数内联工具。这种内联是将函数调用替换为函数体副本,并替换参数,从而永久修改源代码。此功能是 Go 团队提供“自助式”现代化工具的一部分,允许包作者安全、直接地表达简单的 API 迁移和更新。实际上,开发者通过使用 `gopls` 的“Inline call”交互式重构功能就已经在使用此内联算法。本文将介绍该工具的用法,并深入探讨其背后的技术原理。

Go 语言命名规范指南
选择恰当的命名是 Go 编程中的重要环节,良好的命名能极大提升代码清晰度和可预测性。本文详细阐述了 Go 语言中标识符(变量、类型、函数等)的命名规则和最佳实践。硬性规则包括标识符只能包含字母、数字和下划线,不能以数字开头,且不能使用 Go 关键字。推荐的风格是:未导出(私有)标识符使用 camelCase,导出(公共)标识符使用 PascalCase,并应避免使用 snake_case 等其他变体。此外,对于 API、URL 等缩写词,应保持内部大小写的一致性,例如使用 apiKey 或 APIKey,而非 ApiKey。

在 Bazel 用 nogo 去做go代码检查
我在 Bazel 中使用 nogo 而不是 golangci-lint 来进行 Go 代码检查。nogo 是 rules_go 的一个特性,它会将 Go 分析器编译到构建过程中。代码检查错误会变成构建错误。Bazel 会缓存每个包的检查结果,因此增量构建只会重新检查更改的部分。golangci-lint 有自己的缓存,但它不会在 CI 和本地环境之间共享,所以你会重复工作。

云原生技术

KubeVirt v1.8 正式发布
KubeVirt 社区宣布发布 v1.8 版本,该版本与 Kubernetes v1.35 保持同步。这是 KubeVirt 实施 VEP(Virt Enhancement Proposal)流程后的第三次发布,社区参与度显著提升。本次更新的亮点包括:机密计算工作组为 Intel TDX 提供了新的证明支持,允许机密虚拟机认证其运行在机密硬件上;引入了 Hypervisor 抽象层(HAL),使得 KubeVirt 能够在 KVM 之外集成其他虚拟机管理程序后端,同时保持 KVM 的默认优先地位;此外,还为虚拟机中的 AI 和 HPC 工作负载带来了接近原生的性能提升。为庆祝发布,KubeVirt 团队还将在 KubeCon 期间举办多场技术分享及首次线下活动——KubeVirt Summit。

Lima v2.1 发布:支持 macOS 虚拟机与增强 AI 代理安全
Lima v2.1(目前为 Beta 版)现已发布,核心更新是实验性支持在 macOS 主机上运行 macOS 虚拟机,这扩展了 Lima 的应用范围,方便开发者进行特定平台的工作负载测试和构建。此外,本次更新还进一步强化了对本地环境的安全防护,以应对不可预测的 AI 代理带来的风险。Lima(Linux Machines)是一个用于启动本地虚拟机的命令行工具,现已成为 CNCF 孵化项目,可用于运行容器及各类工作负载。用户可通过 Homebrew 等方式安装,并使用简单命令启动 macOS 虚拟机。

Tailscale 助力 OpenClaw 安全访问
OpenClaw 因其趣味性而被广泛使用,但同时也存在一定的安全风险。文章指出,虽然无法完全消除 OpenClaw 的固有危险性,但可以通过集成 Tailscale 来有效降低其使用中的一些安全隐患。Tailscale 帮助用户在访问 OpenClaw 环境时,移除了一些“锋利的边缘”,从而提升了连接的安全性。这表明 Tailscale 在保护用户访问潜在风险服务时的实用价值。

文字处理工具的演变与.doc文件结构的复杂性
作者回顾了自己对文字处理软件的喜爱,从早期的WordPerfect等工具开始,这些软件本质上是增强型打字机。随着技术发展,文字处理软件(尤其是微软Word的兴起)的功能急剧复杂化,从简单的文本编辑演变为“全能工具”,集成了排版、图像和修订跟踪等功能。这种复杂性体现在.doc文件格式上,它不再是简单的二进制文件,而是采用了复合文件二进制格式(Compound File Binary Format),本质上是一个嵌入在单个文件内部的FAT文件系统,这反映了软件功能爆炸性增长带来的文件结构复杂化。

数据库经济体系的崩溃
为什么数据库公司收费如此之高,利润却如此之低,而且还不断把事情搞复杂?

AI

Claude Code 引入“自动模式”以增强权限管理
Claude Code 推出了新的“自动模式”(Auto Mode),作为替代 `--dangerously-skip-permissions` 的方案。在此模式下,Claude 会代表用户做出权限决策,并在操作执行前由安全机制进行监控和拦截。该安全层基于 Claude Sonnet 4.6 模型运行,它会审查对话内容,以防止操作超出任务范围、涉及不受信任的基础设施或由恶意内容驱动。用户可以查看并自定义默认的安全过滤器规则,例如对测试工件和本地操作的限制。此举旨在提供更安全、更少提示的执行环境。

包管理器应引入依赖延迟更新机制
受近期供应链攻击事件的启发,作者重新审视了“依赖延迟更新”(Dependency Cooldowns)的概念,即在新依赖发布后等待几天再安装,以便社区有时间发现潜在的恶意行为。文章指出,这一安全实践在主流包管理器中正得到积极采纳。包括 pnpm、Yarn、Bun、Deno、uv 和 npm 在内的工具,已在 2025 年至 2026 年初陆续引入了相应的配置选项(如 `minimumReleaseAge` 或时间限制),允许用户延迟接受新版本的依赖更新。尽管 pip 26.0 的实现目前仅支持绝对时间戳,但整体趋势表明包管理器生态正在加强对依赖安全稳定性的控制。

Mims:将AI完全控制电脑和生活是愚蠢的
文章引用了《华尔街日报》技术专栏作家克里斯托弗·Mims(Christopher Mims)的观点,他尖锐地批评了将人工智能(AI)完全控制个人电脑乃至整个生活的做法。Mims认为,这种行为在未来回顾时将显得极其愚蠢,并将其比作吉米·法伦(Jimmy Fallon)展示其无聊猿(Bored Ape)图片的行为,暗示了对这种过度依赖和信任AI的强烈不赞同。核心信息聚焦于对AI全面授权所带来的潜在风险和未来视角下的负面评价,强调了安全性和自主控制的重要性。

LiteLLM 1.82.8 版本遭凭证窃取恶意代码攻击
LiteLLM v1.82.8 版本在 PyPI 上线后被发现植入了恶意代码,该代码隐藏在 `litellm_init.pth` 文件中,仅安装即可触发凭证窃取行为。与前一版本(1.82.7)需要导入才能执行不同,此版本更为隐蔽。该恶意软件会窃取用户的广泛敏感信息,包括 SSH 密钥、Git 配置、AWS/Kube/Azure 凭证、Docker 配置、各种历史命令记录以及加密货币钱包文件等。PyPI 已迅速隔离该项目,限制了攻击窗口,但用户若已安装需立即处理。此次供应链攻击可能源于对 Trivy 安全扫描工具的先前漏洞利用。

对AI话题的厌倦感
作者坦言,尽管承认人工智能(AI)的变革性和对个人工作效率的巨大提升,但已对日常讨论AI感到厌倦。他观察到,AI话题已过度占据互联网(如Hacker News)的关注焦点,充斥着大量相似的工具配置和工作流程分享,使得有价值的、关于解决问题的讨论空间被挤压。作者回忆起曾经流行的“产品工程师”理念,即工程师应关注产品价值而非仅仅是代码,并认为当前对AI的过度迷恋似乎是一种倒退,使讨论陷入了自我强化的循环,失去了深度和多样性。

Arm 公司首次将计算平台扩展到芯片产品领域,创下公司历史性突破
今日宣布 Arm 计算平台迎来全新演进,并首次将其应用于量产芯片产品。此次演进的开端是 Arm AGI CPU 的发布,这是一款专为人工智能数据中心设计的 Arm 专用 CPU,旨在应对日益增长的智能体人工智能工作负载。

cq stack overflow for agents

软件工程分为三个分支
人工智能辅助编码改变了企业的游戏规则,将瓶颈从编码转移到判断,从而影响软件构建和角色。

软件行业的两条出路
该文指出,随着公开市场对软件行业估值的重新定价,软件公司高管、创始人及投资者必须认识到“舒适的中位地带”已经结束。作者认为,软件公司要实现持久的股权价值创造,只剩下两条可信赖的路径:第一,在未来12-18个月内,通过真正创新的AI原生产品,将年收入增长加速提升10个百分点以上;第二,将公司运营利润率(包含股权薪酬)重塑至40%以上,最好达到50%。作者强调,这两条路径在短期内(12-18个月)必须选择其一,因为介于高增长和高利润之间的中间状态,将面临增长压力、持续稀释和估值压缩的困境。

流行工具与项目

aquasecurity/trivy
Find vulnerabilities, misconfigurations, secrets, SBOM in containers, Kubernetes, code repositories, clouds and more

kubernetes-sigs/agent-sandbox
agent-sandbox enables easy management of isolated, stateful, singleton workloads, ideal for use cases like AI agent runtimes.

keploy/keploy
Open-source platform for creating safe, isolated production sandboxes for API, integration, and E2E testing.

krau/SaveAny-Bot
Save Any Telegram File to Anywhere 📂 (Alist, Disk, Webdav, S3, Rclone...) . Support restrict saving content and files beyond telegram.

smtg-ai/claude-squad
Manage multiple AI terminal agents like Claude Code, Codex, OpenCode, and Amp.

deepflowio/deepflow
eBPF Observability - Distributed Tracing and Profiling

Project-HAMi/HAMi
Heterogeneous GPU Sharing on Kubernetes

aws/aws-sdk-go-v2
AWS SDK for the Go programming language.

go-kratos/kratos
Your ultimate Go microservices framework for the cloud-native era.

tulir/whatsmeow
Go library for the WhatsApp web multidevice API


编辑:Tony Bai

编辑主页:tonybai.com

GopherDaily项目:github.com/bigwhite/gopherdaily

Copyright 2019-2024 GopherDaily