GopherDaily

GopherDaily

2023-12-14

每日一谚:Make test failures readable


Go技术生态

使用deadcode找到不可达的函数
The Go programming language has introduced a tool called 'deadcode' to identify dead code, functions that are part of a project's source code but cannot be reached in any execution, which can hinder codebase maintenance efforts.

卷起来,老程序员也得了解errors包的新变化
本文介绍了Go中的errors包的新变化。 Go 1.13中增加了一些变化,以更好地支持Go的错误处理提案。 Go,1.20中也增加了一个新方法,可以代替第三方的库处理多个error。 新方法包括Unwrap,Is,As和Join。

使用 Go 编程语言开发可扩展的 API
本文讨论了使用 Go 编程语言开发可扩展 API,重点介绍了其优势,例如静态类型、并发执行和内存管理,并提供了 Dropbox 和 Spotify 等大公司使用它的示例。

测试架构:为自动化测试创建架构
该文档讨论了测试架构在现代软件测试中的重要性,强调了它在简化流程、降低风险和确保高质量产品方面的作用,特别是对于复杂或生命攸关的项目。

为什么选择Go?
该文档汇集了来自不同开发人员的评论,讨论了他们选择编程语言 Go 的原因,强调了它的简单性、速度和强大的类型,以及它的易用性和标准库。

使用 FX 彻底改变您的 Go 开发
Lucas Maia 讨论了 Golang 中的依赖注入概念,特别是 Uber 创建的 FX 库,以及它如何通过解耦组件及其依赖关系来改善系统的模块化。

Go中的调试策略:有效的实践和技术
Shivani Naik 在 Medium 上发表的文章讨论了在 Go (Golang) 中调试的重要性,重点介绍了如何使用 fmt 包、集成开发环境 (IDE)、日志记录和内置工具等技术来识别和解决错误。

使用函数依赖分析提高联接性能
这篇博文讨论了数据库引擎 Dolt 如何提高联接 64 个表的测试查询的性能,将运行时间从 350 万年缩短到 0.1 秒,从而显著加快了速度。

使用Golang掌握流量:鲁棒应用的关键技术
该文档是 Jeromy Raynor 在 Medium 上发表的一篇文章的链接,该文章讨论了如何使用 Golang 来掌握交通流和开发强大的应用程序,重点关注交通控制、速率限制、交通管理和系统稳定性的关键技术。

所以你要版本控制配置吗?
DoltHub 博客讨论了软件开发中的版本控制概念,并解释说它可用于版本控制配置,配置是一组定义软件运行方式的数字和字符串。

Golang 中的数据分片:优化性能和可扩展性
这篇博文讨论了 Golang 中数据分片的实现,Golang 是一种以其效率和并发支持而闻名的编程语言,以提高软件开发中的性能和可扩展性,特别是对于需要高性能和可扩展性的应用程序。

简化并发。第 2 部分:将 goroutines 与 'sync.WaitGroup'
该文档讨论了 Go 并发编程的概念,重点介绍了“sync”的概念及其在邮局代码中的应用,以及如何使用它来解决诸如永不完成的“for {}”循环和“sync.WaitGroup“,用于控制 worker goroutine 的执行。

Tetrate 云原生应用零信任、FIPS 和 FedRAMP 新指南
Tetrate 发布了面向云原生应用的零信任、FIPS 和 FedRAMP 的新指南,涵盖了 FedRAMP 环境中云原生安全监管环境的最新发展,包括 FedRAMP Rev. 5 的引入。

云原生技术

2023 年 CloudFlare 雷达分析的 10 大令人惊讶的见解
Tom Smykowski 分享了 CloudFlare 2023 年雷达分析的 10 大令人惊讶的见解,揭示了网络已经发生了重大变化,Instagram 和 YouTube 在垂直视频趋势中输给了 TikTok,Google Ads 的受欢迎程度下降,Google 的 A/B 测试功能使用频率降低。

Rook v1.13 存储增强功能
Rook v1.13 版本已经发布,为 Ceph 存储提供商提供了新功能,包括 Ceph-CSI 驱动程序的 v3.10 版本,以及添加了 CephFS 子卷组,同时还删除了对 Ceph Pacific 的支持,因为它即将结束生命周期。

Websocket入门
本文介绍了 Web Socket,这是 AWS API Gateway 的一项功能,它允许即时通知以及向连接的侦听器发送消息或事件的能力,而 AWS Web Socket 产品提供连接管理和发送消息的功能。

使用 eBPF 在云原生环境中构建可观测性
扩展伯克利数据包过滤器 (eBPF) 正在改变云原生可观测性的格局,以最小的性能影响实现全面的数据收集,并使其在大规模下具有成本效益,同时最大限度地减少开销并最大限度地提高数据质量。

什么是位掩码动态编程?
什么是位掩码动态编程?

生产中的组合函数
这篇博文讨论了 Crossplane 组合函数(Crossplane 中的一项新功能)在 VSHN 生产中的使用,重点介绍了它的功能和局限性,以及如何在他们的产品 VSHN 应用程序目录中实现它。

博客:Kubernetes v1.29:曼陀罗
Kubernetes v1.29: Mandala (The Universe) 是 2023 年的最后一个版本,它引入了新的稳定版、测试版和 alpha 版功能,其中 49 项增强功能,其中 11 项已升级为稳定版,19 项进入测试版,19 项升级为 alpha 版。

不同的代码文档化策略
本文讨论了正确的代码文档在软件开发中的重要性,强调了 Bit(一种用于创建交互式、生动的软件见解的工具)的作用,以及有效文档的支柱,例如清晰度、一致性、可访问性和及时性。

回顾 BazelCon '23 和 Bazel 7 的发布
Google 开源博客回顾了第 7 届年度 BazelCon'23,这是 Bazel 社区和更广泛的 Build 生态系统的聚会,有 200 多名与会者、超过 3K 的直播观看次数和社区提交的 120 份提案,会议还宣布了 Bazel 7 的初始候选版本。

发布 Flux 2.2 GA
flux 2.2.0 的发布主要侧重于对 helm-controller 的更改,包括一些 API 更改、增强的“HelmRelease”协调模型、改进的 Helm 版本的可观察性、从“pending-*”Helm 发布状态恢复、Helm 版本漂移检测和更正、强制和重试 Helm 版本以及基准测试结果。

AI

在本地运行 LLM 的 6 种方法
本文讨论了在本地运行大型语言模型 (LLM) 的六种方法,解决了商业 AI 和 LLM 中的隐私问题,并强调了开源模型的使用,这些模型提供了大量的模型,但可能需要强大的硬件,并且并非所有模型都可以用于商业用途。

The Rise of Linux AI Assistants
The article "The Rise of Linux AI Assistants" by George Whittaker discusses the rise of Linux AI Assistants, which are transforming productivity and assistance through the integration of conversational AI into the Linux operating system.

AI 基础架构的基础:现代数据湖
本文讨论了现代数据湖(一种结合了数据仓库和数据湖优点的混合数据基础设施)对 AI 计划成功的重要性,强调了计算和存储的分解、横向扩展而不是纵向扩展、软件定义和云原生方法以及高速网络的必要性。

流行工具与项目

googleapis/google-cloud-go
适用于 Go 的 Google Cloud 客户端库。

miekg/dns
Go 中的 DNS 库

bricks-cloud/BricksLLM
简化生产中的 LLM 运算

pocketbase/pocketbase
1 个文件中的开源实时后端

pressly/goose
数据库迁移工具。支持 SQL 迁移和 Go 函数。

charmbracelet/huh
一个简单而强大的终端🤷🏻 ♀️表单和提示库

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

hakluke/hakrevdns
用于大规模执行反向DNS查找的小型快速工具。

runatlantis/atlantis
Terraform 拉取请求自动化

jmorganca/ollama
在本地启动并运行 Llama 2 和其他大型语言模型

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

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

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

coreybutler/nvm-windows
适用于 Windows 的 node.js 版本管理实用程序。具有讽刺意味的是,用 Go 编写。

redis/go-redis
Redis Go 客户端

bluenviron/mediamtx
即用型 SRT / WEBRTC / RTSP / RTMP / LL-HLS 媒体服务器和媒体代理,允许读取、发布、代理和录制视频和音频流。

kubernetes-sigs/cluster-api
Cluster API 的主页,sig-cluster-lifecycle 的子项目

oauth2-proxy/oauth2-proxy
一个反向代理,提供对 Google、Azure、OpenID Connect 和更多标识提供者的身份验证。

emirpasic/gods
GoDS (Go Data Structures) - 集合、列表、堆栈、地图、树、队列等等

tidwall/gjson
快速获取 JSON 值 - Go 的 JSON 解析器

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

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

usememos/memos
一个开源的、轻量级的笔记服务。轻松捕捉和分享您的精彩想法。

cilium/hubble
Hubble - 使用 eBPF 实现 Kubernetes 的网络、服务和安全可观测性

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


编辑:Tony Bai

编辑主页:tonybai.com

GopherDaily主页:gopherdaily.tonybai.com

GopherDaily归档:gopherdaily.tonybai.com/more

GopherDaily项目:github.com/bigwhite/gopherdaily

订阅GopherDaily

取消订阅GopherDaily

另一个邮件列表:https://gopher-daily.com

Copyright 2023 GopherDaily