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

GopherDaily

20251107

每日一谚:A test should never delete something it did not create.


Go技术生态

Go 的“简单”幻象:易于上手,难于精通
近日,一位刚接触 Go 几个月的新手在reddit golang论坛发出了这样一个真诚的提问。他感觉 Go “超级简单”,并好奇自己是否因为初学者的身份,而忽略了语言中那些“疯狂的复 杂性”。 这个问题,立刻引发了社区关注。数百条评论从四面八方涌来,汇成了一场关于 Go 语言简单性本质的深度辩论。最终,社区的集体智慧凝聚成一个 经典而又充满辩证性的共识:Go 的简单,是刻意为之的设计;而通往精通之路,则隐藏在简约表象之下的深邃之处。

Go 运行时环境或许有一天会显式地释放一些内部内存
runtime.free已经被merge,将作为GOEXPERIMENT并且是默认值出现在Go 1.26中

OpenTelemetry eBPF Instrumentation 首次发布
在 Grafana Labs、Splunk、Coralogix、Odigos 和许多其他社区成员之间进行了重要合作之后,我们很高兴地宣布 OpenTelemetry eBPF Instrumentation(简称 OBI)的第一个 alpha 版本发布。 这一事件标志着该项目(最初为 Grafana Beyla)由 Grafana Labs 于今年早些时候捐赠后的一个重要里程碑。在项目在 OpenTelemetry 保护伞下管理之后,eBPF Instrumentation 的开发速度大大加快。 已经添加了许多新的协议,质量得到了提高——尤其是在大规模部署时,并且测试的运行速度提高了 10 倍。 这真正证明了 OpenTelemetry 社区的价值。

理解 Go 语言中的桥接设计模式:实践指南
将抽象与实现分离,实现更简洁、可扩展的架构

Uber 的 Pinot 查询改造:简化层并提高可观察性
Uber 重建了其 Apache Pinot 查询架构,用名为 Cellar 的轻量级代理和 Pinot 的多阶段引擎精简模式取代了基于 Presto 的 Neutrino 系统。这次重新设计简化了 SQL 执行,改进了资源管理,并确保了大规模分析工作负载的可预测性能。

深入探讨深度递归的 Go
了解更多关于开发人员为什么最终会编写深度递归的 Go 代码,以及可以采取哪些措施来缓解堆栈耗尽问题。

云原生技术

Dynamic MCPs: Stop Hardcoding Your Agents’ World
使用 Docker MCP 网关智能搜索和代码模式工具,使您的代理能够动态配置 MCP。

宣布 Crossplane 的 CNCF 毕业
我们今天非常激动地宣布 Crossplane 在 CNCF 中毕业!

Gateway API 1.4:新功能
准备好迎接 Kubernetes 网络吗? Kubernetes SIG Network 社区推出了网关 API (v1.4.0) 的正式发布 (GA)! 2025 年 10 月 6 日发布的 1.4.0 版本加强了 Kubernetes 中现代、富有表现力和可扩展的服务网络的道路。网关 API v1.4.0 为标准通道(网关 API 的 GA 发布通道)带来了三个新功能:网关和后端之间 TLS 的 BackendTLSPolicy、GatewayClass 状态中的 supportedFeatures、Route 的命名规则,并引入了三个新的实验性功能:Mesh 资源、默认网关和 HTTPRoute 的 externalAuth 过滤器。

我讨厌配置语言中的东西
剧透:我创建了自己的配置语言 maml.dev 这里将列出我在互联网上找到的所有标记语言/配置语言,以及我不喜欢它们的地方。

停止用vibe coding你的单元测试
不要用LLMs编写嘈杂的、无建设性的单元测试。QA工程师走进酒吧,点了一杯啤酒,她点了2杯啤酒,她点了0杯啤酒,她点了-1杯啤酒,她点了一只蜥蜴,她点了一个NULLPTR。她试图在不付款的情况下离开。满意地,她宣布酒吧准备好营业。第一个顾客进来点了一杯啤酒。他们喝完了饮料,然后问洗手间在哪里。酒吧爆炸了。

编译器目标的简短调查
对编译器目标进行简短调查,如汇编、LLVM、C、JVM 和 Brainfuck。

你应该编写一个 Agent
有些概念在抽象中很容易理解。煮沸水:施加热量并等待。其他的你需要先尝试一下。你只是认为你理解自行车是如何工作的,直到你学会骑自行车。 计算中有一些大的想法很容易理解。 AWS S3 API。 这是过去 20 年来最重要的存储技术,就像开水一样。 其他技术,你需要先踩到踏板上。 LLM 代理就是这样的。 人们对 LLM 和代理的看法大相径庭。但无论它们是蛇油还是什么,它们都是一个伟大的想法。你不需要喜欢它们,但你应该想对它们是对的。成为你所能成为的最好的仇恨者(或粉丝)。 这就是你应该写一个代理的原因之一。但是,还有另一个原因更具说服力,那就是

为什么 TypeScript 无法拯救你
TypeScript 是一个很棒的工具,但它无法拯救你。 了解其局限性是编写真正安全代码的第一步。

写最后,读最先规则
TigerBeetle 是一个为正确性而构建的金融交易数据库。然而,即使使用正确的组件构建正确的系统仍然是一个挑战: 组合单独正确的系统不一定能产生正确的系统。在这篇文章中,我们将探讨如何在没有事务的情况下保持一致性,如何在中间状态外部化时推理正确性,以及如何从部分故障中恢复。

Blazingly fast parsing, part 1: optimizing the scanner
解析性能的基石是快速的扫描器。本文解释了V8的JavaScript扫描器最近如何变得快了2.1倍。

Blazingly fast parsing, part 2: lazy parsing
This is the second part of our series explaining how V8 parses JavaScript as fast as possible. The first part explained how we made V8’s scanner fast.

TLA+ 建模 AWS 宕机 DNS 竞态条件
2025 年 10 月 19 日至 20 日,AWS 的弗吉尼亚北部地区遭受了由 DNS 自动化缺陷引发的重大 DynamoDB 宕机,该缺陷破坏了端点解析。 这个问题级联成持续了将近一整天的全区域故障,并中断了许多公司的服务。 与大多数大规模宕机一样,“DNS 自动化缺陷” 只是一个触发因素; 更深层次的系统性脆弱性(请参阅我关于野外亚稳态故障论文的帖子)放大了影响。 这篇文章重点介绍了错误的中心竞态条件,最好通过 TLA+ 建模来理解。

AI

使用 Codex CLI 结合 gpt-oss:120b 在 NVIDIA DGX Spark 上通过 Tailscale 运行
受到 YouTube 评论的启发,我写了关于如何运行 OpenAI 的 Codex CLI 编码代理,针对在我的 NVIDIA DGX Spark 上通过 Tailscale 网络运行的 gpt-oss:120b 模型。配置需要一些工作,但结果是现在我可以在世界任何地方使用笔记本电脑上的 Codex CLI 来操作自托管模型。

The Rise of Subagents
Subagents在AI社区中越来越受欢迎。 我们看到越来越多的子代理被用来可靠地处理特定的用户目标。 子代理是一种专门的代理,旨在处理单一的、定义明确的任务。 子代理可以是显式的,用户或模型定义它们以供重用,也可以是隐式的和动态定义的。 这解决了单体 AI 代理上下文污染的一个关键限制。

The Learning Loop and LLMs
软件开发一直以来都抵制将其变成流水线的想法。尽管我们的工具变得更智能、更快、功能更强大,但本质的行动仍然是一样的:我们通过实践来学习。本文探讨了持续学习在软件开发中的重要性,并讨论了大型语言模型(LLMs)对这一过程的影响。文章强调了实践学习循环的重要性,即观察和理解、实验和尝试、回忆和应用。它认为 LLMs 可以降低实验的门槛,但不能取代实践学习。文章最后总结道,LLMs 提供了巨大的杠杆,但只有当我们专注于学习和理解时才能发挥作用。真正的能力来自我们对正在塑造的系统的深入理解,而不是我们生产代码的速度。

流行工具与项目

mudler/LocalAI
🤖 The free, Open Source alternative to OpenAI, Claude and others. Self-hosted and local-first. Drop-in replacement for OpenAI, running on consumer-grade hardware. No GPU required. Runs gguf, transformers, diffusers and many more. Features: Generate Text, Audio, Video, Images, Voice Cloning, Distributed, P2P and decentralized inference

modelcontextprotocol/go-sdk
The official Go SDK for Model Context Protocol servers and clients. Maintained in collaboration with Google.

nats-io/nats-server
High-Performance server for NATS.io, the cloud and edge native messaging system.

ayn2op/discordo
A lightweight, secure, and feature-rich Discord terminal (TUI) client.

mudler/edgevpn
⛵ The immutable, decentralized, statically built p2p VPN without any central server and automatic discovery! Create decentralized introspectable tunnels over p2p with shared tokens

prometheus/alertmanager
Prometheus Alertmanager

prometheus/node_exporter
Exporter for machine metrics

glanceapp/glance
A self-hosted dashboard that puts all your feeds in one place

cilium/cilium
eBPF-based Networking, Security, and Observability

keploy/keploy
API, Integration, E2E Testing Agent for Developers that actually work. Generate tests, mocks/stubs for your APIs!

mayswind/ezbookkeeping
A lightweight, self-hosted personal finance app with a user-friendly interface and powerful bookkeeping features.

gitleaks/gitleaks
Find secrets with Gitleaks 🔑

kubernetes-sigs/gateway-api
Repository for the next iteration of composite service (e.g. Ingress) and load balancing APIs.

influxdata/telegraf
Agent for collecting, processing, aggregating, and writing metrics, logs, and other arbitrary data.

stretchr/testify
A toolkit with common assertions and mocks that plays nicely with the standard library

OpenCSGs/csghub-server
csghub-server is the backend server for CSGHub which helps user to manage datasets, modes, and also run Model Inference, Finetune and Application Spaces.

gruntwork-io/terragrunt
Terragrunt is a flexible orchestration tool that allows Infrastructure as Code written in OpenTofu/Terraform to scale.

evanw/esbuild
An extremely fast bundler for the web

sirupsen/logrus
Structured, pluggable logging for Go.

open-telemetry/opentelemetry-go
OpenTelemetry Go API and SDK

kubernetes/ingress-nginx
Ingress NGINX Controller for Kubernetes

rivo/tview
Terminal UI library with rich, interactive widgets — written in Golang

google/wire
Compile-time Dependency Injection for Go


编辑:Tony Bai

编辑主页:tonybai.com

GopherDaily项目:github.com/bigwhite/gopherdaily

Copyright 2019-2024 GopherDaily