GopherDaily

GopherDaily

2024-07-09

每日一谚:Favor composition over inheritance


Go技术生态

基于HTTP/3的gRPC
本文讨论了 HTTP/3 在 gRPC 应用中的潜力,重点介绍了其优势,例如更快的连接建立、消除线头阻塞和强制加密,并提供了有关如何通过 HTTP/3 设置和测试 gRPC 服务器和客户端的实际示例。

构建具有速率限制的Go API网关
本文讨论了使用“mux”路由库、“viper”库(用于配置管理)和“gorilla/mux”(路由器)库的基本 Go API 网关的开发,旨在简化客户端交互、增强安全性并确保微服务架构的整体健康。

在Go和C#之间切换的技巧
该文档提供了在 Go 和 C# 之间转换的技巧,讨论了静态、实例、重载、命名空间、切片和数组、可访问性/可见性、测试和基准测试方面的差异。

Go Web 应用中的错误处理不应该那么尴尬
本文讨论了 Go 服务(如 HTTP、gRPC 和其他服务)的错误处理模式,重点介绍了其优点,例如惯用的错误处理、处理不同的 HTTP 状态以及定义特定于域的错误代码的能力,同时承认其局限性和潜在的改进。

对Go Context API进行上下文化:程序范围
该文档讨论了 Go 上下文 API 在现代 Go 开发中的作用、它的历史及其在分布式计算环境中的潜在应用,包括请求范围的数据、取消信号和截止日期,以及跨包边界统一实现的必要性。

Podcast: How Mat writes HTTP services in Go
In the podcast "Go Time #322", Mat Ryer, a seasoned HTTP services developer, discusses his experience and lessons learned over 13 years in Go with Johnny & Ian, with a transcript available for download.

使用 TinyGo 和 WASI P2 直接编译 Go 到 WebAssembly 组件
TinyGo 和 WASI P2 特性分支已添加到 TinyGo 的“dev”分支中,允许开发人员将 Go 代码编译到 WebAssembly 组件中,从而实现可移植性、互操作性和可组合功能。

Git 分支是 MVCC 吗?
这篇博客文章比较了 MySQL、PostgreSQL 和 Dolt 这三个不同版本的多版本并发控制 (MVCC) 实现,重点介绍了存储布局、默认隔离模式、冲突解决和垃圾回收,以及这些如何影响异常检测和生命周期维护。

使用 Sendhooks 构建 Webhook 服务: 10 分钟指南
该文档提供了有关如何使用 Sendhooks(一种 Golang 引擎)、Docker 和 NGINX 构建 webhooks 服务的指南,并演示了如何使用 Flask 和 Docker 将 Sendhooks 集成到应用程序中。

Geomys,一家可持续发展的开源维护公司的蓝图
作者宣布推出 Geomys,这是一家由专业开源维护者组成的小型公司,为关键的 Go 项目提供专业维护和专业知识,资金来自作者现有的现金流,专注于 Go 并专注于使开源维护者成为一个成熟的职业。

云原生技术

最常用的分布式系统设计模式
Anil Gudigar 讨论了最常用的分布式系统设计模式,包括 Ambassador 代理、断路器、速率限制器、事件溯源、Sidecar、Sharding 和 Bulkhead,每种模式都为复杂的分布式计算提供解决方案,例如提高弹性、容错性和可扩展性。

利用 Calico 的微分段技术拥抱现代虚拟化
源文档是一条消息,指示来自系统的“403 Forbidden”错误消息,特别是来自服务器端,特别是来自“ns”部分。

eBPF 如何塑造 Linux 和平台工程的未来
eBPF 是一种允许用户在 Linux 内核中加载和运行自定义程序的技术,在企业架构和云服务提供商产品中变得越来越普遍,其创建者预测基于 eBPF 的突破将定义 Linux 和平台工程的未来。

BCC:用于开始使用 eBPF 的前端工具
本文讨论了 BCC(BPF 编译器集合),这是一个社区项目,它提供了一个全面的工具包,用于编写、编译和加载 eBPF 程序到内核中,以及用于 Linux 性能分析和调试的应用程序。

AI

人工智能难题
本文讨论了人工智能行业面临的挑战,包括每个用户的人工智能模型选择、人工智能网关的出现,以及人工智能开源的复杂性,尤其是训练数据问题。

流行工具与项目

techschool/simplebank
后端大师班:用 Go 构建一个简单的银行服务

grpc/grpc-go
gRPC 的 Go 语言实现。基于 HTTP/2 的 RPC

ethereum-optimism/optimism
乐观是以太坊,规模化。

gorilla/websocket
Package gorilla/websocket 是一种快速、经过充分测试且广泛使用的 Go WebSocket 实现。

nats-io/nats-server
适用于 NATS.io、云和边缘原生消息系统的高性能服务器。

robfig/cron
Go 的 cron 库

plandex-ai/plandex
在您的终端中实现 AI 驱动的开发。专为大型真实任务而设计。

grafana/loki
像普罗米修斯一样,但用于日志。

JanDeDobbeleer/oh-my-posh
最可定制和低延迟的跨平台/shell 提示渲染器

spf13/cobra
现代 Go CLI 交互的指挥官

kubernetes/client-go
Go 客户端用于 Kubernetes。

nektos/act
在🚀本地运行 GitHub Actions

grpc-ecosystem/grpc-gateway
遵循 gRPC HTTP 规范的 gRPC 到 JSON 代理生成器

projectcalico/calico
云原生网络和网络安全

junegunn/fzf
🌸 命令行模糊查找器

sqlc-dev/sqlc
从 SQL 生成类型安全的代码

github/gh-ost
GitHub 的 MySQL 在线模式迁移工具

knadh/listmonk
高性能、自托管、时事通讯和邮件列表管理器,具有现代仪表板。单个二进制应用程序。

spf13/viper
用獠牙去配置

golang-migrate/migrate
数据库迁移。CLI 和 Golang 库。

external-secrets/external-secrets
External Secrets Operator 从第三方服务(如 AWS Secrets Manager)读取信息,并自动将值注入为 Kubernetes Secrets。

sirupsen/logrus
用于 Go 的结构化、可插拔的日志记录。

juanfont/headscale
Tailscale 控制服务器的开源自托管实现

aws/karpenter-provider-aws
Karpenter 是一个 Kubernetes 节点自动缩放器,专为灵活性、性能和简单性而构建。

kubernetes-sigs/kubebuilder
Kubebuilder - 用于使用 CRD 构建 Kubernetes API 的 SDK


编辑:Tony Bai

编辑主页:tonybai.com

GopherDaily主页:gopherdaily.tonybai.com

GopherDaily归档:gopherdaily.tonybai.com/more

GopherDaily项目:github.com/bigwhite/gopherdaily

订阅GopherDaily

取消订阅GopherDaily

Copyright 2019-2024 GopherDaily