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

GopherDaily

20250417

每日一谚:Favor composition over inheritance


Go技术生态

“Go is badly designed”?它像极了我们当年恨过的物理老师!
Go 就像那位严格的物理老师,他可能不会让你在学习过程中时刻感到“舒适”,甚至会让你经历挫败和“阵痛”。但他目标明确,方法直接,逼着你打好基础,养成严谨的习惯,最终让你能够独立、高效地解决实际问题。

自定义Hash终迎标准化?Go提案maphash.Hasher接口设计解读
随着Go泛型的落地和社区对高性能自定义容器需求的增长,如何为用户自定义类型提供一套标准、安全且高效的Hash计算与相等性判断机制,成为了Go核心团队面临的重要议题。近日,经过Go核心开发者多轮深入探讨,编号为#70471 的提案 hash: standardize the hash function 最终收敛并被接受,为Go生态引入了全新的maphash.Hasher[T] 接口,旨在统一自定义类型的Hash实现方式

GoLibAFL:使用 LibAFL 对 Go 二进制文件进行模糊测试
本文介绍了 GoLibAFL,这是一个基于 LibAFL 的 Go 代码模糊测试器。GoLibAFL 提供了最先进的模糊测试技术,并为高级用户提供了极高的可定制性。文章深入探讨了该项目的动机、架构决策以及开发过程中遇到的挑战。还对现有的 Go 模糊测试解决方案进行了概述,并将其与 GoLibAFL 进行了比较,给出了证明 GoLibAFL 性能优越的基准测试结果。如果只想开始使用 GoLibAFL 对 Go 代码进行模糊测试,请参阅简介部分或访问存储库以获取设置说明。

云原生技术

Graphite监控工具的更好替代方案
Graphite是一个优秀的开源监控解决方案和用于指标的时序数据库(TSDB)。它于2008年发布,此后一直运行良好。Graphite架构简单,在中小规模环境下易于操作。但在大规模环境下,它存在可扩展性问题,例如默认数据存储后端Whisper在存储数十万个唯一指标路径时会遇到磁盘IO限制;Whisper会根据配置的数据保留配置预分配磁盘空间,这可能会导致磁盘空间过度使用。文章提出了几种解决方案,并重点推荐了VictoriaMetrics,因为它支持Graphite的数据摄取和查询API,迁移成本低,并且能够处理数百万个数据点每秒的摄取速率。

为什么选择 Doltgres 而不是 Dolt?
Dolt 已发布 1.0 版本,是一个经过验证的生产数据库。Doltgres 仍处于 Beta 阶段,并且正在积极开发中。本文解答了为什么人们会选择 Doltgres 而不是 Dolt 的问题。主要原因包括:公司内部只使用 Postgres;正在从 Postgres 迁移数据库;大量使用模式;更倾向于投资 Postgres 生态系统。不建议选择 Doltgres 的原因包括:目前不支持扩展;速度不如 Dolt(目前);不包含一些特殊的 Postgres 功能。

Rook v1.17 存储增强
Rook v1.17 版本发布!v1.17 版本带来了许多新功能,以改进 Kubernetes 的存储功能。再次感谢社区为这一部署生产环境存储的历程提供的大力支持。本版本为 Ceph 存储提供程序带来了许多新功能,包括默认情况下更安全的 ObjectBucketClaims、CephObjectStoreUser 凭据管理、存储桶所有者以及 Kafka 身份验证机制等。此外,还包含 Ceph CSI 3.14 版本以及 Ceph CSI 运算符(实验性)等更新。

将 370 万行 Flow 代码迁移到 TypeScript
Pinterest 在八个月内将 370 万行代码从 Flow 迁移到 TypeScript,从而提高了类型安全性、开发人员体验和招聘效率。文章分享了迁移过程中的经验教训以及对 Stripe 的 flow-to-typescript 代码转换工具的贡献。

AI

超越AI编码:Trae对人机协作的愿景
在当今的AI领域,无数的编程工具争相吸引人们的注意。然而,真正的革命不在于AI编写代码的能力,而在于改变人类和机器在整个开发过程中的协作方式。Trae 的目标不仅仅是提高开发效率,更是创造一种全新的人工智能协同创作模式。Trae 旨在成为开发人员的真正 AI 工程师合作伙伴,通过处理重复的实现细节,同时在架构层面提供有意义的见解,从而成倍地提高开发人员的生产力和创造力。

OpenAI o3和o4 mini模型介绍

AI实验室的商业模式
作者即将加入Anthropic,因此在被指控泄露内部信息之前,这是他最后一次有机会写下一些关于AI实验室商业模式的想法。文章探讨了AI实验室的竞争格局,并提出了实验室可以采取的一些策略来确保自身良好的经济效益。文章指出,目前AI实验室在技术上没有明显的领先者,进入壁垒不高,模型提取等技术使得竞争加剧。作者分析了AI实验室、云计算提供商和AI客户之间的战略动态,认为各方都在试图使对方的要素商品化。最后,文章提出了AI实验室可以维持利润和收入增长的一些策略,例如增加切换成本、获得训练数据优势、建立市场、建立监管壁垒、垂直整合、专业化、捆绑销售以及期待规模经济的出现。作者还特别关注了一种“远程员工”模式,即在客户公司内部部署AI代理,认为这种模式具有天然的护城河、巨大的市场规模以及降低模型提取风险等优势,并能形成良性循环。

流行工具与项目

thanos-io/thanos
Highly available Prometheus setup with long term storage capabilities. A CNCF Incubating project.

caarlos0/env
A simple, zero-dependencies library to parse environment variables into structs

swaggo/swag
Automatically generate RESTful API documentation with Swagger 2.0 for Go.

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

opentofu/opentofu
OpenTofu lets you declaratively manage your cloud infrastructure.

google/gvisor
Application Kernel for Containers

gofiber/fiber
⚡️ Express inspired web framework written in Go

navidrome/navidrome
🎧☁️ Your Personal Streaming Service

nektos/act
Run your GitHub Actions locally 🚀

go-playground/validator
💯Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving

containerd/containerd
An open and reliable container runtime

donknap/dpanel
轻量化 docker 可视化管理面板。lightweight panel for docker

ccfos/nightingale
Nightingale for monitoring and alerting, just as Grafana for visualization.

pressly/goose
A database migration tool. Supports SQL migrations and Go functions.

kubernetes/ingress-nginx
Ingress NGINX Controller for Kubernetes

hashicorp/terraform
Terraform enables you to safely and predictably create, change, and improve infrastructure. It is a source-available tool that codifies APIs into declarative configuration files that can be shared amongst team members, treated as code, edited, reviewed, and versioned.

nats-io/nats.go
Golang client for NATS, the cloud native messaging system.

juicedata/juicefs
JuiceFS is a distributed POSIX file system built on top of Redis and S3.

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

go-git/go-git
A highly extensible Git implementation in pure Go.

kubernetes-sigs/kustomize
Customization of kubernetes YAML configurations

google/go-containerregistry
Go library and CLIs for working with container registries

hashicorp/consul
Consul is a distributed, highly available, and data center aware solution to connect and configure applications across dynamic, distributed infrastructure.

docker/buildx
Docker CLI plugin for extended build capabilities with BuildKit


编辑:Tony Bai

编辑主页:tonybai.com

GopherDaily项目:github.com/bigwhite/gopherdaily

Copyright 2019-2024 GopherDaily