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

GopherDaily

20260123

每日一谚:Using Unexported Empty Struct as Context Key


Go技术生态

2025 Go 官方调查解读:91% 满意度背后的隐忧与 AI 时代的“双刃剑”
近日,Go 官方发布了 2025 年开发者调查报告。作为 Go 社区的年度“体检报告”,这份基于 5,379 份有 效问卷的数据,为我们勾勒出了一幅清晰的 Go 生态全景图。总体来看,Go 依然是一个令人愉悦的语言,拥有极高的用户忠诚度和稳固的云原生地位。但在这份光鲜的成绩单背后,我们也看到了一些值得深思的信号:关于最佳实践的迷茫、对 AI 工具的爱恨交织,以及对官方领导力的期待。

【分布式系统】07 事务(上):2PC 与 3PC —— 追求“完美原子性”的理想与代价

Go 语言中的反压模式:从通道到队列再到负载均衡
你的 Go 服务在高负载下开始出现问题。队列不断增长,goroutine 数量激增,响应速度也随之下降。代码本身运行正常,但请求到达的速度超过了系统的处理能力。这种情况是不是很熟悉?本文将探讨如何管理反压,以确保系统在高峰期也能保持稳定和可预测的性能。

智能体记忆
代理记忆(Agentic memory)已经到来,它由 Dolt 提供支持。本文解释了什么是代理记忆,定义了其要求,并展示了为什么 Dolt 是一个完美的选择。领先的代理记忆系统 Beads 使用 Dolt 进行存储。 文章深入探讨了 AI 代理的工作原理,包括上下文(Context)、循环(Looping)和工具(Tools)。接着讨论了代理记忆面临的问题,如冷启动(Cold Start)、上下文限制(Context is Limited)以及如何处理更大任务(Can’t Do Larger Tasks)和多代理(Multi-Agent)场景。 作者提出了代理记忆的两种模型:线性的“上下文堆栈跟踪”(Context as Stack Trace)和非线性的“非线性上下文”(Non-linear Context)。最终,文章指出代理记忆的关键在于版本控制的结构化数据,并强调 Dolt 作为第一个也是唯一一个具有 Git 风格版本控制的 SQL 数据库,完美契合了代理记忆的需求。领先的代理记忆系统 Beads 正在迁移到 Dolt 作为其后端。

云原生技术

LiveKit 的 C 轮融资:迈向语音驱动的计算时代
LiveKit 宣布完成 1 亿美元 C 轮融资,估值达到 10 亿美元。本轮融资由 Index Ventures 领投,Salesforce Ventures、Hanabi Capital 以及长期支持者 Altimeter 和 Redpoint Ventures 参投。文章讨论了语音 AI 作为下一代计算接口的潜力,并介绍了 LiveKit 如何通过构建一套完整的开发堆栈和运行时环境(包括构建、测试评估、部署运行和观察等环节),来简化构建和扩展语音 AI 应用的难度,旨在使之像在 Web 上构建和扩展应用一样容易。

使用 Docker:从快速工具到多代理系统的 MCP 服务器工具
本文介绍了如何使用 Docker 的 MCP 生态系统来解决运行 MCP(模型上下文协议)服务器时遇到的运行时复杂性、密钥管理和客户端集成等问题。文章探讨了三种方法:使用 Docker MCP Toolkit & Catalog 快速入门;使用 YAML 优先的 cagent 框架构建声明式多代理应用;以及使用 LangGraph、CrewAI 或 ADK 等传统代理框架进行完全可编程的控制。最后通过对比表格总结了不同方法的适用场景。

自主企业与平台控制的四大支柱:2026年展望
DevOps和平台工程的承诺是平衡开发人员的速度与企业治理。到2026年,AI代理将从简单的辅助工具转变为自动化这种平衡的核心机制。本文预测,自主企业将由“黄金路径(Golden Paths)”、“护栏(Guardrails)”、“安全网(Safety Nets)”和“人工审查工作流程(Manual Review Workflows)”这四大AI驱动的控制机制来定义。

Headlamp in 2025: Project Highlights
This announcement recaps the major highlights and evolution of the Headlamp project in 2025. Key updates include joining the Kubernetes SIG UI, significant progress from Linux Foundation mentorship projects (like plugins for KEDA and Karpenter, and observability stack integration), and major feature additions such as a Multi-cluster view, a new 'Projects' feature for grouping resources, redesigned navigation with an activities model, and enhanced search capabilities. The project also focused on performance, accessibility, plugin extensibility (now supporting vanilla Helm repos), and the introduction of the Headlamp AI Assistant for natural-language interaction.

如何在 Polar Signals Cloud 中检查 debuginfo 状态
本文介绍了在 Polar Signals Cloud 中排查 debuginfo 处理问题的更快捷、更简单的方法。用户现在只需在火焰图中的一个函数帧上右键单击并选择“检查 debuginfo 状态”,即可在侧边栏中查看有关构建 ID 的详细信息,包括构建 ID、类型、来源、哈希、首次/最后看到时间、处理时间以及最重要的——处理状态(如“等待上传”、“处理中待定”、“成功”或“错误”)。

集成测试是最好的测试 — jayconrod.com
作者提出了一个非主流观点:集成测试是最重要的测试类型,应争取优秀的集成测试覆盖率,而将相对较少的时间投入到单元测试中。作者认为自参与 Go 的构建工具 cmd/go 的工作以来,一直持有此观点。他们拥有大量出色的集成测试,这些测试易于编写、运行快速且在发现回归方面可靠。这与传统的“测试金字塔”观念相反,作者认为集成测试应占据金字塔的主要部分。 文章解释了测试的目的(提供信心以方便修改代码)以及不同类型测试的优缺点: 1. **单元测试**:易于编写,但提供的信心相对较少,特别是当依赖项被模拟(mocked)时,且维护成本高(易受实现细节变化的影响)。 2. **端到端测试**:提供最真实的系统工作情况的指示,但设置和运行成本最高、最慢,反馈不及时。 3. **集成测试**:是单元测试和端到端测试之间的最佳平衡点,能提供良好信心、耦合度较低、反馈速度快。 作者强调,集成测试的难点在于编写的复杂性,因此需要投资于一个能处理环境设置、组件连接等繁琐工作的测试框架,例如 Go 的 `cmd/go` 中使用的脚本测试框架。最后,作者提供了在命令行工具、Android 应用和 gRPC 后端服务等不同领域应用集成测试的案例。

Hands-On Introduction to Unikernels
本教程介绍了什么是 Unikernel,并将其与 Linux 容器进行比较。用户将学习 Unikernel 的核心原则、权衡,并亲手构建一个 Nginx Unikernel,最后将其打包为 OCI 镜像,并使用 OCI 运行时(urunc)进行网络连接和资源限制下的运行,从而展示 Unikernel 如何融入云原生生态系统。

The best code is no code: composing APIs and CLIs in the era of LLMs
The article discusses two strategies for providing tools to Large Language Models (LLMs): defining top-level tools for fine-grained actions or informing the model about useful shell commands (CLIs) it can invoke. The author argues that the latter, enabling command composition via the Unix shell, offers significant benefits in terms of token cost savings and pipeline reusability. The author demonstrates this by showing how to give an agent access to Google Docs and Google Groups functionality by leveraging existing command-line tools like Restish (for OpenAPI specs) and oauth2c (for authorization), essentially treating API specifications as programs that the shell can interpret. A detour covers securing refresh tokens on macOS using the `security` command with an empty application path (`-T ""`). For services lacking machine-readable specs, like Google Groups, the author suggests an adversarial interoperability workflow involving HAR file capture, sanitization, and LLM-assisted Python client generation.

解释器:Tree-sitter 与 LSP
本文从可观察和实用的角度解释了 Tree-sitter 和语言服务器 (LSP) 之间的区别。Tree-sitter 是一个解析器生成器,擅长快速解析并容忍语法错误,使其非常适合创建语法高亮引擎。语言服务器(通过 LSP 协议通信)是一个分析程序的程序,可以提供语义正确的信息,如符号定义定位和代码补全等,有效解决了不同语言和编辑器之间的兼容性问题。文章还提到,语言服务器也可以用于语法高亮,例如 Rust 语言服务器可以提供关于变量是否是可变 (mutable) 的信息。

AI

A quote from Theia Vogel
一位名叫 Theia Vogel 的用户分享了她通过要求 ChatGPT 总结有关国家形成的书籍,并据此在“燃气镇(Gas Town)”游戏中进行调整的经历。她使用“圈限理论”(circumscription theory)作为启发,修改了资源分配系统,引入了士兵角色来与其他城镇进行战斗和掠夺代币。

Claude Code拉黑了我

流行工具与项目

spf13/cobra
A Commander for modern Go CLI interactions

chaitin/SafeLine
SafeLine is a self-hosted WAF(Web Application Firewall) / reverse proxy to protect your web apps from attacks and exploits.

googleapis/google-cloud-go
Google Cloud Client Libraries for Go.

putyy/res-downloader
视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载!

redis/go-redis
Redis Go client

amir20/dozzle
Realtime log viewer for containers. Supports Docker, Swarm and K8s.

github/github-mcp-server
GitHub's official MCP Server

open-telemetry/opentelemetry-go-contrib
Collection of extensions for OpenTelemetry-Go.

microsoft/typescript-go
Staging repo for development of native port of TypeScript

ollama/ollama
Get up and running with OpenAI gpt-oss, DeepSeek-R1, Gemma 3 and other models.

cloudreve/cloudreve
🌩 Self-hosted file management and sharing system, supports multiple storage providers

containers/kubernetes-mcp-server
Model Context Protocol (MCP) server for Kubernetes and OpenShift

oauth2-proxy/oauth2-proxy
A reverse proxy that provides authentication with Google, Azure, OpenID Connect and many more identity providers.

temporalio/temporal
Temporal service

helm/helm
The Kubernetes Package Manager

google/go-github
Go library for accessing the GitHub v3 API

google/pprof
pprof is a tool for visualization and analysis of profiling data

grpc/grpc-go
The Go language implementation of gRPC. HTTP/2 based RPC

crossplane/crossplane
The Cloud Native Control Plane


编辑:Tony Bai

编辑主页:tonybai.com

GopherDaily项目:github.com/bigwhite/gopherdaily

Copyright 2019-2024 GopherDaily