20250401
每日一谚:Abstraction are discovered not created
Go语言中的零拷贝读取器
Go语言的io.Reader接口定义了一个Read方法,调用者传递一个字节切片,该切片将被填充来自底层源的字节。底层源可以是文件、网络套接字等。本文介绍了几种避免数据复制,提高效率的零拷贝读取方法,包括使用bytes.Reader和bufio.Reader,并分析了它们的工作原理和优缺点。
为什么具体错误类型优于哨兵错误
本文探讨了在 Go 语言中使用具体错误类型相对于哨兵错误的优势。具体错误类型在性能、不可篡改性和可扩展性方面都优于哨兵错误。文章还介绍了第三方函数 `errutil.Find`,它作为标准库函数 `errors.As` 的强大替代方案。
Go语言中何时可以使用 panic?
Go语言中有一句谚语“不要恐慌(don't panic)”,建议优雅地处理错误或将其返回给调用者,而不是使用内置的 `panic()` 函数。本文探讨了 `panic()` 函数的功能、避免使用它的原因以及在某些情况下使用 `panic()` 的合理场景。文章区分了运行时错误和编程错误,认为对于编程错误(例如除零、数组越界等),使用 `panic()` 是可以接受的,因为这些错误通常表明代码存在逻辑缺陷,而返回错误会增加不必要的复杂性。文章还通过几个实际例子说明了在何种情况下使用 `panic()` 更合适,例如在配置加载阶段或作为保护措施防止SQL注入等。
Go并发编程中的多路复用(Fan-In)模式
本文介绍了Go语言中用于将多个通道合并为一个通道的Fan-In模式。该模式可以有效地解决在并发编程中处理多个工作线程输出的问题,避免了轮询每个工作线程的低效方法。文章从一个简单的例子开始,逐步讲解了Fan-In模式的工作原理,并最终提供了一个健壮的、可扩展到任意数量输入的Fan-In函数实现,该函数使用sync.WaitGroup来确保所有输入都处理完毕后才会关闭输出通道。
真实团队如何修复 Kubernetes 网络问题(无需抓狂)
这是我们关于 Kubernetes 安全风险系列文章的第 4 部分,也是最后一部分。我们已经介绍了问题所在——现在让我们看看现实世界中解决这些问题的团队。了解公司如何确保 Kubernetes 的安全性,而不会增加复杂性或减慢开发人员的速度。
Meta 2025年移动GraphQL - Meta 工程博客
Meta 的移动 GraphQL 框架使用强类型声明式查询语言 GraphQL 在移动应用中获取数据。它负责 Facebook 和 Instagram 等应用的数据获取。Meta 工程博客文章介绍了移动 GraphQL 的演变和未来,以及如何帮助团队为 Meta 应用的用户打造更好的体验,同时简化开发人员的工作。文章还分享了团队的见解和意外挑战,并提供了收听该播客的链接。
番茄架构 - 一种务实的软件设计方法
本文介绍了一种名为“番茄架构”的软件设计方法。作者在学习DDD、Clean/Onion/Hexagonal架构后,发现它们非常相似,都旨在保护核心领域逻辑不受外部依赖的影响。然而,作者也指出,盲目追求这些架构可能会导致过度工程。因此,作者提出了“番茄架构”,强调简洁性和可读性,并提供了一些务实的编码实践和架构决策,以避免过度工程,并提高代码的可维护性和可扩展性。文章还包含架构图和实施指南。
使用 eBPF 实现无代理零扩展
本文介绍了如何使用 eBPF 为容器化工作负载实现无代理零扩展,同时减少 Kubernetes 中的延迟和成本。作者讨论了 KEDA 的局限性,并展示了 eBPF 如何克服这些局限性,从而实现更高效的资源利用率。
现代数据基础设施的未来
本文探讨了现代数据基础设施的关键预测。它解释了塑造现代数据基础设施的核心原则,例如性能和可扩展性、弹性、数据一致性、安全性和成本效率。文章还预测了未来数据基础设施的几个关键能力,包括持续的性能和可扩展性、实时数据处理的重要性、专用和混合架构的共存、兼容性和可扩展性的重要性以及AI集成和能力的重要性。
Pydantic Evals
Pydantic Evals是一个来自Pydantic AI团队的新软件包,它直接解决了我在AI工程中认为最困难的问题:构建评估来确定你的基于LLM的系统是否正常工作,并且随着时间的推移是否越来越好。这个软件包目前处于测试阶段,并且文章中也提到了评估方法仍然是一个发展中的领域。文章还包含代码示例,展示了如何使用Case和Dataset来定义评估案例,以及如何使用自定义评估器,包括LLM-as-a-judge。案例和数据集也可以序列化为YAML格式。作者对该软件包的初步印象很好,并期待在实际项目中进行测试。
Gemini 2.5 Pro 与 Claude 3.7 Sonnet 的编码能力对比 - Composio
本文比较了 Google 最新发布的 Gemini 2.5 Pro 实验性模型与 Claude 3.7 Sonnet(思考型)模型的编码能力。作者通过四个编码问题(飞行模拟器、魔方求解器、4D 超立方体中的弹球以及一个 LeetCode 难题)的测试,得出结论:Gemini 2.5 Pro 在编码方面表现更好,拥有百万级上下文窗口,且免费使用。虽然 Claude 3.7 Sonnet 也表现出色,但在编码能力方面已落后于 Gemini 2.5 Pro。
tulir/whatsmeow
Go library for the WhatsApp web multidevice API
go-kratos/kratos
Your ultimate Go microservices framework for the cloud-native era.
fatedier/frp
A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.
Calcium-Ion/new-api
AI模型接口管理与分发系统,支持将多种大模型转为统一格式调用,支持OpenAI、Claude等格式,可供个人或者企业内部管理与分发渠道使用,本项目基于One API二次开发。🍥 The next-generation LLM gateway and AI asset management system supports multiple languages.
AdguardTeam/AdGuardHome
Network-wide ads & trackers blocking DNS server
binwiederhier/ntfy
Send push notifications to your phone or desktop using PUT/POST
dunglas/frankenphp
🧟 The modern PHP app server
databus23/helm-diff
A helm plugin that shows a diff explaining what a helm upgrade would change
glanceapp/glance
A self-hosted dashboard that puts all your feeds in one place
alireza0/s-ui
An advanced Web Panel • Built for SagerNet/Sing-Box
mark3labs/mcphost
A CLI host application that enables Large Language Models (LLMs) to interact with external tools through the Model Context Protocol (MCP).
keploy/keploy
Unit, API & Integration Testing Agent for Developers. Generate tests, mocks/stubs for your APIs that actually work!
go-shiori/shiori
Simple bookmark manager built with Go
v2fly/v2ray-core
A platform for building proxies to bypass network restrictions.
danielmiessler/fabric
fabric is an open-source framework for augmenting humans using AI. It provides a modular framework for solving specific problems using a crowdsourced set of AI prompts that can be used anywhere.
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 models architectures. Features: Generate Text, Audio, Video, Images, Voice Cloning, Distributed, P2P inference
XTLS/Xray-core
Xray, Penetrates Everything. Also the best v2ray-core. Where the magic happens.
henrygd/beszel
Lightweight server monitoring hub with historical data, docker stats, and alerts.
traefik/traefik
The Cloud Native Application Proxy
ariga/atlas
Manage your database schema as code
pocketbase/pocketbase
Open Source realtime backend in 1 file
iawia002/lux
👾 Fast and simple video download library and CLI tool written in Go
编辑:Tony Bai
编辑主页:tonybai.com
GopherDaily项目:github.com/bigwhite/gopherdaily
Copyright 2019-2024 GopherDaily