20251218
每日一谚:Favor composition over inheritance
逃离 Java 的“自行车棚”:Go 语言真的是那片“净土”吗?
近日,一位开发者发出了这样的咆哮。他受够了 Java 生态中那种无休止的、关于细枝末节的争论——也就是所谓的“自行车棚效应”(Bike Shedding)。他正在认 真考虑转向 Go 语言。 但问题是,换一门语言,真的就能彻底摆脱人性的弱点,找到那份久违的“简单”与“高效”吗
“这段代码是 AI 写的!”—— Go 社区的“AI 辅助编程”第一案
近日,一场在 Go 官方 GitHub Issue 中爆发的公开“对峙”,将一个长期悬而未决的问题,以一种极具戏剧性的方式,推到了所有 Gopher 的面前:我们应该如何对待 AI 生成的代码?
【API 设计之道】04 字段掩码模式:让前端决定后端返回什么
快问:当时是什么时间? | Dave Cheney
这篇文章提出了一个源自人工智能编程助手错误建议的小测验。测验包含一个Go程序,它打印当前时间,然后使用`defer`打印当前时间,并在打印完第一次时间后暂停10秒。读者需要判断`defer`语句中打印的时间戳与第一次打印的时间戳之间的时间间隔是:a. 大致相同(即同一秒),b. 大致相差10秒,还是c. 其他情况。答案被放在了“折叠”之后(即页面的下一页)。
为什么复制 Go 锁是个坏主意
在处理包含互斥锁的 Go 结构体时,你可能会倾向于复制它们。但复制带有 sync.Mutex 的结构体安全吗?让我们探讨一下复制带有锁的结构体为何会导致意外行为和微妙的错误。文章通过一个并发计算器示例展示了复制包含锁的结构体会导致死锁(deadlock)的问题,并解释了这是因为互斥锁的内部状态(如信号量)在复制时被共享或复制,从而破坏了同步机制的正确性。作者建议,包含锁的结构体应始终通过指针(pointer)来使用和传递,并推荐使用 go vet -copylocks 和 go test -race 来检测此类问题。
Go 1.24 的 `go tool` 是近年来生态系统中最好的新增功能之一
为什么我对 `go tool` 在 Go 1.24 中落地感到非常兴奋。
Go 项目布局的实用指南
本文针对 Go 项目布局中常见的困惑,提供了一个“不废话”的实用指南。作者认为许多人过度复杂化了项目结构,并指出官方指南中“internal/”和“cmd/”的使用建议常常被误解或滥用。核心观点是保持简单,只有在真正需要时才引入复杂的结构,如不必要的 internal/ 或 pkg/ 目录。作者建议将 main 包放在根目录以方便安装和运行,并反对创建过多的工具包(如 util/),提倡将代码放在最合理或最接近使用的地方。同时,作者也分享了自己的一些项目作为参考,并强调 Go 包结构更偏向艺术而非死板规则。
使用 Antigravity 为 AI 教授现代 Go:解决“停留在过去”的问题
作者分享了如何利用 Google Antigravity AI IDE 中的 .agent/rules 功能,来指导 AI 遵循现代 Go 语言的最佳实践(如 Go 1.22 的整数范围和 Go 1.24 的 b.Loop 基准测试方法),从而解决 AI 生成代码“停留在过去”的问题,确保代码的惯用性和新特性被正确使用。
Dolt 2025 总结:年度回顾
这是我们对 2025 年 Spotify 年度回顾格式的模仿(Dolt 版本)。我们将回顾一些精选类别,并提供博客文章链接,以防您上次错过了。
重点回顾了 2025 年的最佳功能(如向量列和索引、Doltgres Beta、自动垃圾回收等)、最佳用例(围绕 AI 代理的工作流)、最佳技术博客文章(关于 Prolly Trees 的文章)、最有趣的文章(关于编程代理的文章)、最大的惊喜(Dolt 在 sysbench 性能上达到 MySQL 水平)以及对 2026 年的展望(Dolt 2.0 的临近)。
插件案例研究:mdBook 预处理器 - Eli Bendersky 的网站
本文讨论了 mdBook 的插件机制,特别是预处理器。mdBook 是一个用于从 Markdown 文件创建书籍的工具,在 Rust 生态系统中非常流行。预处理器允许使用任何编程语言修改书籍内容。文章描述了 mdBook 的预处理器工作流程(通过 JSON 交互),并将其与插件基础设施的基本概念(发现、注册、钩子、API 暴露)进行了对比。作者展示了一个用 Python 和 Rust 编写的示例插件,并简要提及了渲染器(后端)机制。
介绍与 xAI 合作推出的 Grok 语音代理 API
您现在可以使用驱动 Grok 语音体验的相同技术栈来构建语音代理。Grok 语音模型能够理解人类语音的表达范围并生成相应富有表现力的回应,实现了低至 700 毫秒的响应时间。xAI 与 LiveKit 合作,现已通过 LiveKit Agents 插件提供 Grok 语音代理 API,允许开发者在 Python 中轻松集成该技术,并支持工具调用、自定义语音选项和更自然的交互体验。该技术在客户服务、医疗保健、教育和销售等领域具有巨大潜力。
TiDB X 的诞生:起源、架构与未来展望
了解 TiDB X 如何通过专为 AI、SaaS 和现代增长而构建的弹性、云原生架构来削减数据库成本。本文深入探讨了 TiDB X 的起源、技术演变,以及其背后的五大核心架构原则,包括从“数据库”到“服务”的转变、服务导向架构 (SOA)、虚拟集群 (VC)、日志即数据库的理念,以及基于 TiDB 强项(尤其是分片)的全新设计。TiDB X 目前是 TiDB Cloud 的核心引擎,提供了真正的无服务器弹性。
Docker 为每个人提供加固镜像
安全始于人人。Docker 容器(Docker Hardened Images,DHI)现已免费供所有人使用、共享和构建,且无许可方面的意外惊喜。此举旨在为整个生态系统设定一个安全新标准,DHI 基于 Alpine 和 Debian 等受信任的开源基础构建,提供最小化、安全配置的生产就绪镜像,并承诺完全透明化和可验证的 SBOM。对于需要更严格安全保障的企业,还提供 DHI Enterprise 和 DHI 扩展生命周期支持 (ELS) 等商业选项。
KubeVirt undergoes OSTIF security audit
The Open Source Technology Improvement Fund (OSTIF) is proud to share the results of a recent security audit of KubeVirt, a Kubernetes virtualization API and runtime for managing virtual machines. The audit process involved threat modeling, automated testing, and manual code review. The results include 15 findings with security impact (1 High, 7 Medium, 4 Low, 3 Informational, including CVE 2025-64324), a custom threat model, and fix recommendations. The auditors noted that KubeVirt's architecture prioritizes sandboxing, which limits the impact of vulnerabilities.
Kubernetes v1.35: Timbernetes (世界之树发布)
Kubernetes v1.35 发布,代号“Timbernetes”(世界之树),共包含 60 项增强功能,其中 17 项稳定、19 项测试版和 22 项 Alpha 版。重点更新包括:Pod 资源原地更新(稳定版)、为工作负载身份验证和安全性引入 Pod 证书(测试版)、节点在调度前声明特性(Alpha 版)。Gateway API 和 DRA 持续创新,同时本版本中也包含了一些不推荐使用和移除的变更,如移除了对 cgroup v1 的支持,并弃用了 kube-proxy 的 ipvs 模式。
How SQLite Is Tested
SQLite的可靠性和健壮性部分得益于彻底和仔细的测试。截至3.42.0版本,SQLite核心代码约有155.8 KSLOC,而测试代码和脚本则有92053.1 KSLOC(是核心代码的590倍)。测试活动包括四个独立的测试套件(TCL测试、TH3、SQL逻辑测试和dbsqlfuzz)、数百万个测试用例、异常测试(如内存不足、I/O错误、崩溃和断电)、模糊测试、边界值测试、回归测试、禁用优化测试、自动资源泄漏检测、动态分析(断言、Valgrind、memsys2、互斥锁断言、Journal测试、未定义行为检查)以及静态分析。TH3测试套件在默认配置下实现了核心SQLite代码的100%分支测试覆盖率(以及100% MC/DC测试覆盖率)。所有这些测试都必须在每次发布前通过,以确保SQLite的质量和健壮性。
TLA+建模技巧
这篇文章提供了关于TLA+建模的实用技巧,主要强调“极简建模”——从核心开始,逐步扩展,默认采用省略法,只添加绝对必要的组件。建议关注规范而非实现细节,保持声明式思考,并注意消除模型中不合法的全局知识。其他技巧包括:细化原子操作的粒度、使用带保护的命令(Guarded Command)风格思考、明确写出类型不变式 (TypeOK invariants) 和所有重要的不变式、检查进度属性,以及在模型检查效率优化之前,先确保模型是正确的(甚至通过故意引入错误来测试)。
Gemini 3 Flash 简介:基准测试和全球可用性
Google 发布了 Gemini 3 Flash,这是一款专为速度而设计的前沿智能模型,成本仅为同等性能模型的一小部分。该模型将 Gemini 3 Pro 级别的推理能力与 Flash 级别的延迟和效率相结合。Gemini 3 Flash 现已通过 Gemini API 向开发者推出,并作为 Gemini 应用和搜索中 AI 模式的默认模型向全球用户推出,为日常任务提供了增强的推理能力和卓越的性能,同时保持了极高的效率。
人工智能的真正超能力:消费而非创造
每个人都错误地使用人工智能。它的超能力不是为你写作,而是阅读你写过的所有内容,并发现你错过的模式。作者认为,AI真正的突破在于将其用作个人知识库的“终极阅读器”,从而从过去的经验中发现模式、连接思想,加速解决问题,而不是简单地让它进行内容创作。
AI能力不是人性
尽管人类和大型语言模型(LLM)在表面上存在相似之处,但它们在根本上受制于不同的约束和算法。本文认为,随着AI能力的扩展,这种差距只会越来越大。作者从计算约束、数据约束、时间约束和算法差异四个方面阐述了人类和LLM的根本不同。文章最后提出,评估LLM是否像人类,应该关注其决策过程,而不是仅仅关注输出结果的相似性,并推荐了用于过程级评估的“行为沙盒”方法。
Agentic AI 问题集
共有20个问题来测试您对Agentic AI关键术语的了解。该问题集的设计理念是:问题驱动、先思考后解答(多选题)、提供答案和解释,并包含行业见解。内容涵盖LLM Agent、工具使用、ReAct、Agent Loop、RAG等20个术语。还提供了PDF文件下载链接。
v2fly/domain-list-community
Community managed domain list. Generate geosite.dat for V2Ray.
vllm-project/semantic-router
Intelligent Router for Mixture-of-Models
VictoriaMetrics/VictoriaMetrics
VictoriaMetrics: fast, cost-effective monitoring solution and time series database
danielmiessler/Fabric
Fabric is an open-source framework for augmenting humans using AI. It provides a modular system for solving specific problems using a crowdsourced set of AI prompts that can be used anywhere.
apernet/hysteria
Hysteria is a powerful, lightning fast and censorship resistant proxy.
Ingenimax/agent-sdk-go
A powerful Go framework for building production-ready AI agents!
junegunn/fzf
🌸 A command-line fuzzy finder
expr-lang/expr
Expression language and expression evaluation for Go
oauth2-proxy/oauth2-proxy
A reverse proxy that provides authentication with Google, Azure, OpenID Connect and many more identity providers.
open-telemetry/opentelemetry-collector
OpenTelemetry Collector
k3s-io/k3s
Lightweight Kubernetes
prometheus/prometheus
The Prometheus monitoring system and time series database.
bitnami-labs/sealed-secrets
A Kubernetes controller and tool for one-way encrypted Secrets
cockroachdb/cockroach
CockroachDB — the cloud native, distributed SQL database designed for high availability, effortless scale, and control over data placement.
open-policy-agent/opa
Open Policy Agent (OPA) is an open source, general-purpose policy engine.
kubernetes/minikube
Run Kubernetes locally
grafana/k6
A modern load testing tool, using Go and JavaScript
base/node
Everything required to run your own Base node
AlexxIT/go2rtc
Ultimate camera streaming application with support RTSP, RTMP, HTTP-FLV, WebRTC, MSE, HLS, MP4, MJPEG, HomeKit, FFmpeg, etc.
NexaAI/nexa-sdk
Run the latest LLMs and VLMs across GPU, NPU, and CPU with PC (Python/C++) & mobile (Android & iOS) support, running quickly with OpenAI gpt-oss, Granite4, Qwen3VL, Gemma 3n and more.
prometheus-operator/prometheus-operator
Prometheus Operator creates/configures/manages Prometheus clusters atop Kubernetes
jaegertracing/jaeger
CNCF Jaeger, a Distributed Tracing Platform
kgateway-dev/kgateway
The Cloud-Native API Gateway and AI Gateway
fleetdm/fleet
Open device management
keploy/keploy
API, Integration, E2E Testing Agent for Developers that actually work. Generate tests, mocks/stubs for your APIs!
编辑:Tony Bai
编辑主页:tonybai.com
GopherDaily项目:github.com/bigwhite/gopherdaily
Copyright 2019-2024 GopherDaily