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

GopherDaily

20250313

每日一谚:Do not be afraid to copy, when it makes sense


Go技术生态

Anders Hejlsberg专访全文:TypeScript正在向Go移植
为什么不选择Rust?为什么不使用C#等其他语言?为了帮助大家更好地理解这次“技术事件”,我整理了Michigan TypeScript对Anders Hejlsberg的专访的文字稿(时长超过1小时),并将全文发布在这里供大家参考

Go官博:抗路径遍历的文件访问API
Go 1.24 中引入了新的文件访问 API,以应对路径遍历漏洞。文章解释了这种漏洞类型,以及一些现有的防御措施,并描述了 Go 1.24 中新增的 os.Root API 如何提供一种简单而强大的防御方法,防止意外的路径遍历。os.Root 类型表示本地文件系统中的某个目录,并提供了一组方法来安全地操作该目录中的文件,防止攻击者通过相对路径组件或符号链接访问目录外的文件。

Kubernetes网络故障排除为何如此困难?
Kubernetes 网络安全风险系列文章的第一部分。Kubernetes 网络复杂,错误配置会使组织面临安全风险。我们将分析网络为何如此困难,最大的安全漏洞以及您可以采取的措施。

Go 1.24中基准测试:不容错过的内容
对于我们 Go 开发者来说,编写更少的代码意味着犯错的机会更少。但是,如果通过更少的代码来实现更多目标呢?这听起来很有吸引力,不是吗?那么,如果减少编写代码的时间,以强制编译器不优化基准测试函数呢?Go 1.24 的 testing 包添加了一个新工具——Loop 方法,它抽象了许多在早期 Go 版本中需要编写的功能,以获得正确的基准测试结果。我们无需再进行脑力体操来欺骗 Go 编译器不优化基准测试函数。让我们来看一个示例包,并以新的方式和旧的方式编写基准测试。

Go语言中的nil channel
本文探讨了Go语言中空通道(nil channel)的行为。作者从一个工作中遇到的问题出发,解释了发送和接收数据到空通道会导致死锁,以及在使用`select`语句时,空通道如何导致无限循环。文章详细分析了不同场景下的代码示例,并最终给出了避免这些问题的解决方案,包括初始化通道和使用`for range`循环。此外,文章还介绍了在合并多个通道时,如何利用空通道来提高效率。

睡个好觉:编写你放心的Go代码
这是一篇关于如何编写可靠的 Go 代码的博文,作者分享了他在十年 Go 编程生涯中积累的经验,重点在于错误处理、测试、优雅降级和监控,最终目的是让开发者在提交代码后能够安心休息,不必担心生产环境问题。文章包含具体的代码示例和实践建议。

使用 htmx 和 Go 构建高性能网站
本文探讨了如何使用 htmx 和 Go 构建高性能网站。htmx 是一个轻量级的 JavaScript 库,它允许使用 AJAX 进行服务器端渲染,从而减少对客户端 JavaScript 的依赖。Go 是一种高性能的编程语言,其自动垃圾收集、高效的并发模型和快速执行使其成为构建可扩展后端的理想选择。文章首先介绍了 htmx 和 Go,然后通过一个简单的动态应用程序和一个更复杂的待办事项应用程序演示了它们的用法,最后讨论了优化和最佳实践。

我在 Go 语言中找到 ed25519 性能提升 20% 的方法
Storj 网络中一项密集型 CPU 使用的是 Edwards 25519 签名方案。下载和上传数据需要从卫星 (服务器) 向存储节点 (保存数据的计算机) 发送签名消息。签名确保消息不会被篡改。因此,卫星需要进行大量的签名和验证;上行链路 (客户端应用程序) 和存储节点也是如此。本文讲述了作者优化 ed25519 签名和验证过程的故事,最终在 ARM64 平台上实现了约 20% 的性能提升。

云原生技术

使用 Testcontainers 进行左移测试
了解集成测试如何帮助您在开发人员内部循环中更早地发现缺陷,以及 Testcontainers 如何使它们像单元测试一样轻松。本文将探讨左移集成测试对开发流程速度和变更交付时间的影响。

Kubernetes 故障排除:分步指南
在现代软件行业中,微服务架构和 Kubernetes 已成为全球范围内被采用的解决方案,为寻求可扩展性和运营效率的组织提供支持。本文将讨论最常见的 Kubernetes 错误及其解决方案,包括容器 CRASHLOOPBACKOFF 问题(OOM Killed 和 CPU 限制)、环境变量/密钥挂载问题以及数据库连接问题。

CockroachDB 十周年:扩展关系型数据库的未来
Cockroach Labs 迎来了十周年纪念日。文章回顾了过去十年的发展历程,以及CockroachDB 如何帮助客户克服数据分布、可扩展性和弹性方面的挑战。文章还展望了未来的发展方向,包括改进对 pgvector 的支持以增强 AI 用例,以及持续提升 CockroachDB 的弹性和性能。

每个开发者都应该了解的 GPU 计算
本文介绍了 GPU 架构和计算的基础知识,涵盖了从架构到执行模型和资源分配等方面的内容。文章比较了 CPU 和 GPU 的架构和设计目标,解释了 GPU 如何通过大量线程和强大的计算能力来容忍高延迟并实现高吞吐量。文章还详细介绍了 GPU 的内存架构,包括寄存器、常量缓存、共享内存、L1 缓存、L2 缓存和全局内存,并阐述了 CUDA 内核的执行步骤,以及资源分配对 SM 占用率的影响。

AI

Xata Agent
Xata公司推出了一款名为“Agent”的新工具,该工具利用大型语言模型(LLM)的提示来监控和优化PostgreSQL服务器。该工具使用一系列名为“剧本”(playbooks)的提示来完成各种任务,例如调查慢查询、进行一般监控和调整数据库等。文章重点介绍了这些“剧本”的提示内容,并对这种编写软件的有趣方式进行了评论。

我对“AI”未来的思考
作者对大型语言模型的未来潜力持谨慎态度,认为未来几年语言模型可能能够胜任大多数(所有?)人类专家水平的认知经济任务,但也可能达到一个能力平台期,尽管成本继续下降,能力继续提升,但不会发生颠覆世界秩序的根本性范式转变。作者认为这两种可能性都应该认真对待,并探讨了导致这两种未来可能性的原因,以及对大型语言模型未来发展的一些挑战和可能性。

2025 年 AI 模型推荐指南
这篇博文提供了一个关于 2025 年应该使用哪个 AI 模型的意见性指南。作者比较了 ChatGPT、Claude、Gemini、Grok 和 Perplexity 等几种主流 AI 模型,并根据其各自的优缺点,推荐了不同的使用场景。例如,ChatGPT 适合日常问答、语音对话和多模态交互;Claude 擅长写作和编码;Gemini 拥有最长的上下文窗口,并支持视频处理;Grok 是最好的免费 AI 模型,信息更新速度快;Perplexity 适合快速查找信息和旅行规划。

我如何使用 Cursor(以及我最好的技巧)
这篇博文介绍了如何有效地使用 Cursor AI 的实用技巧,包括 YOLO 模式、测试驱动开发、调试和键盘快捷键。

深入探讨:我们如何(以及为什么)构建了 Question Assistant
去年,我们发布了 Staging Ground,帮助新的提问者在他们的问题公开发布到 Stack Overflow 之前,在一个专门的空间里从经验丰富的用户那里获得反馈。此后,我们看到了已发布问题质量的显著改善;然而,一个问题仍然需要时间才能获得人工反馈并完成整个 Staging Ground 流程。审查者还注意到,他们一遍遍地重复着相同的评论:这篇文章不属于这里,缺少上下文,是重复的等等。这种模式让我们有机会使用机器学习和人工智能来识别这些常见情况并加快流程,以便人工审查者可以将时间花在处理更细微的情况上。借助与 Google 的合作,我们拥有一个强大的 AI 工具(Gemini)来帮助我们测试、识别和生成自动化反馈。最终,我们发现,评估问题质量和确定适当的反馈需要一些经典的机器学习技术以及我们的生成式 AI 解决方案。本文将介绍我们如何考虑、实施和衡量 Question Assistant 的结果。

Gemini 机器人将 AI 带入物理世界
谷歌 DeepMind 推出了 Gemini Robotics 和 Gemini Robotics-ER,这两种基于 Gemini 2.0 的 AI 模型旨在帮助机器人理解、行动和对物理世界做出反应。Gemini Robotics 是一种先进的视觉-语言-动作 (VLA) 模型,能够控制机器人执行各种现实世界的任务。Gemini Robotics-ER 则具有先进的空间理解能力,使机器人专家能够使用 Gemini 的具身推理 (ER) 功能运行他们自己的程序。这两个模型都提高了机器人的通用性、交互性和灵活性,并能应用于不同类型的机器人。DeepMind 还发布了一个新的数据集以评估和改进具身 AI 和机器人的语义安全,并与 Apptronik 等公司合作,致力于负责任地推进 AI 和机器人技术的发展。

流行工具与项目

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

goharbor/harbor
An open source trusted cloud native registry project that stores, signs, and scans content.

ray-project/kuberay
A toolkit to run Ray applications on Kubernetes

hashicorp/vault
A tool for secrets management, encryption as a service, and privileged access management

GoogleCloudPlatform/terraformer
CLI tool to generate terraform files from existing infrastructure (reverse Terraform). Infrastructure to Code

golang/go
The Go programming language

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

istio/istio
Connect, secure, control, and observe services.

VictoriaMetrics/VictoriaMetrics
VictoriaMetrics: fast, cost-effective monitoring solution and time series database

gin-gonic/gin
Gin is a HTTP web framework written in Go (Golang). It features a Martini-like API with much better performance -- up to 40 times faster. If you need smashing performance, get yourself some Gin.

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

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

goravel/goravel
A Golang framework for web artisans. Tribute to Laravel.

helm/helm
The Kubernetes Package Manager

langgenius/dify-sandbox
A lightweight, fast, and secure code execution environment that supports multiple programming languages

vmware-tanzu/velero
Backup and migrate Kubernetes applications and their persistent volumes

DataDog/dd-trace-go
Datadog Go Library including APM tracing, profiling, and security monitoring.

langgenius/dify-plugin-daemon

dstotijn/hetty
An HTTP toolkit for security research.

grafana/pyroscope
Continuous Profiling Platform. Debug performance issues down to a single line of code

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

gitleaks/gitleaks
Find secrets with Gitleaks 🔑

heroiclabs/nakama
Distributed server for social and realtime games and apps.


编辑:Tony Bai

编辑主页:tonybai.com

GopherDaily项目:github.com/bigwhite/gopherdaily

Copyright 2019-2024 GopherDaily