GopherDaily

GopherDaily

2024-04-16

每日一谚:Buffered channels as semaphores to limit goroutine execution


Go技术生态

在过去的 12 年中,Go 的速度提高了 24 倍
Tom Smykowski 在 Medium 上分享了一个仅限会员的故事,讲述了 Go 编程语言在过去 12 年中如何将其性能提高了 24 倍。

防御内存泄露:探索Rust和Go的安全机制
这篇博文讨论了内存安全在编程语言中的重要性,强调了 Rust 内存安全功能的好处,例如防止缓冲区溢出和下溢、类型强制管理以及严格可变性规则和同步的执行。

Go Is An Object Oriented Programming Language
The document discusses the concept of object-oriented programming in Go, arguing that the language's features, not its "being", make it an object-oriented programming language, and that Go's features, such as structs and interfaces, support object-oriented design and are more akin to a statically-typed Tomcat without inheritance.

LLM 可以测试一个什么都不做的Go函数吗?
本文使用 DevqualityEval 基准测试评估了 123 个长线内存 (LLM) 模型在为空 Go 函数生成自动测试方面的性能,并得出结论,虽然这些模型可以生成有效的 Go 代码,但还有很大的改进空间。

欢迎来到 Microsoft for Go 开发人员博客!
Microsoft 为 Go 开发人员推出了一个博客,提供有关 Microsoft 在 Go 上工作的最新信息,包括在 Azure 上部署 Go 工作负载和 Microsoft 生态系统中的 Go 编程。

gotips 002: 多阶段 defer
本文介绍了多阶段 defer方法,通过简单的'defer'关键字,可以实现在另一个函数的开头和结尾处执行一个函数。 文章还提到了在 Java 等编程语言生态圈中,有一些单元测试的框架如 JUint,可以为单元测试开始前设置一些初始环境,单元测试结束时执行一些清理动作。 在 Go 语言中,可以使用 tip #002 这种方式实现。 文章最后提到,官方 `testing` 库中有 `t.Cleanup`、 `b.Clean up`、`tb. Cleanup`和`f.Cleanups`方法,可以注册多个清理函数,执行完测试或者子测试后就会被调用,后进先出。

Golang 应用程序的 12 个安全提示 - 验证、清理、身份验证、CSRF 攻击、哈希 ++
该文档为 Golang 应用程序提供了 12 个安全提示,包括验证、清理、身份验证、CSRF 攻击和哈希,并为每个提示提供了示例。

云原生技术

Securing Prometheus with Istio Ambient
The blog post discusses the challenges of securing the application, specifically the application called by the blog, "Prometheus", with Istio's mTLS, and how Istio' ambient mode can address these issues by providing a new data plane mode that can handle traffic directly to pods, making secure mSSL feasible for the application.

同步开发环境的最佳实践:开发人员的工具包 ✨
CodeNewbie 社区为开发人员提供了一套技术最佳实践,以确保高效可靠的开发工作流程,包括自动化、容器化、持续集成和部署、跨环境保持一致性、利用配置管理以及文档和监控。

AI Trends Report 2024: AI’s Growing Role in Software Development
The source document is a brief message with the error message " 403 Forbidden".

Triton Server 加速基于 Dragonfly 的模型分发
该文档提供了有关如何将蜻蜓存储库代理与tritonserver-server项目结合使用的指南,通过P2P技术消除存储的带宽限制,从而加速模型的分发。

内部开发人员平台之后会发生什么?
新堆栈讨论了内部开发人员平台的兴起及其带来的挑战,强调了集中化的潜力和维护这些系统的挑战,以及对促进沟通和协作的工具的需求。

AI

过去的技术教训和人工智能在教育中的发展路径
理查德·纳普(Richard Knapp)讨论了人工智能在教育中的潜力,将对宽带和网站等其他技术发展的怀疑和投资与当前对人工智能的恐惧和怀疑相提并论。

流行工具与项目

goharbor/harbor
一个开源的可信云原生注册表项目,用于存储、签名和扫描内容。

kubernetes/kube-state-metrics
用于生成和公开集群级指标的附加代理。

hashicorp/terraform
Terraform 使你能够安全、可预测地创建、更改和改进基础结构。它是一种源代码可用的工具,可将 API 编码为声明性配置文件,这些文件可以在团队成员之间共享、视为代码、编辑、审查和版本控制。

actions/actions-runner-controller
适用于 GitHub Actions 自托管运行器的 Kubernetes 控制器

nalgeon/redka
使用 SQLite 重新实现的 Redis

influxdata/telegraf
插件驱动的服务器代理,用于收集和报告指标。

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

ipfs/kubo
Go 中的 IPFS 实现

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

gin-gonic/gin
Gin 是一个用 Go (Golang) 编写的 HTTP Web 框架。它具有类似 Martini 的 API,性能要好得多——速度提高了 40 倍。如果您需要出色的性能,请给自己买一些杜松子酒。

abiosoft/colima
macOS(和 Linux)上的容器运行时,只需最少的设置

milvus-io/milvus
云原生矢量数据库,用于下一代 AI 应用的存储

loft-sh/vcluster
vCluster - 创建功能齐全的虚拟 Kubernetes 集群 - 每个 vcluster 在底层 k8s 集群的命名空间内运行。它比创建单独的成熟集群更便宜,并且比常规命名空间提供更好的多租户和隔离。

google/syzkaller
Syzkaller 是一个无监督覆盖引导的内核模糊器

go-gorm/gorm
Golang 出色的 ORM 库旨在对开发人员友好

hashicorp/terraform-provider-azurerm
适用于 Azure 资源管理器的 Terraform 提供程序

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

grpc-ecosystem/go-grpc-middleware
Golang gRPC 中间件:拦截器链接、身份验证、日志记录、重试等。

NVIDIA/k8s-device-plugin
适用于 Kubernetes 的 NVIDIA 设备插件

goreleaser/goreleaser
尽可能快速、轻松地交付 Go 二进制文件

prometheus/prometheus
Prometheus 监控系统和时间序列数据库。

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

netbirdio/netbird
通过SSO/MFA和简单的访问控制,将您的设备连接到一个基于WireGuard®的安全专用网状网络中。

google/wire
Go 的编译时依赖注入

docker/compose
使用 Docker 定义和运行多容器应用程序


编辑:Tony Bai

编辑主页:tonybai.com

GopherDaily主页:gopherdaily.tonybai.com

GopherDaily归档:gopherdaily.tonybai.com/more

GopherDaily项目:github.com/bigwhite/gopherdaily

订阅GopherDaily

取消订阅GopherDaily

Copyright 2019-2024 GopherDaily