GopherDaily

GopherDaily

2024-01-07

每日一谚:Be explicit rather than implicit


Go技术生态

Go语言之父的反思:我们做对了什么,做错了什么
退居二线的Go语言之父Rob Pike在Go开源14周年的那天亲自在GopherCon Australia 2023上发表了What We Got Right, What We Got Wrong的主题演讲来回顾Go诞生以来的得与失。近期Rob Pike终于将这次演进的文字稿发布了出来!GopherCon Australia也在油管上发布了这个演进的视频。Rob Pike的观点对所有Gopher都是极具参考价值的,我将Rob Pike的这次演讲稿翻译成中文,供大家参考(结合文字稿和视频),我们一起来领略和学习大师的观点。

限制泛型设计中的复杂性
这篇博文是对 GopherConAU 2023 演讲的补充,讨论了在为 Go 设计泛型和潜在解决方案时面临的挑战,特别是类型参数问题,它被认为是 **P** 与 **NP** 问题,它至少与同一类中的任何其他问题一样难。

在 GoLang 中编写更好的 Discord 机器人:介绍 DiscordGo 机器人套件
本文介绍了 DiscordGo Bot Kit,这是一个旨在简化 Discord 机器人创建的 GitHub 模板,并提供了有关如何使用它的分步指南。

从初学者到专业人士:在 Go 编程中导航上下文
这篇博文详细介绍了 Go 编程中“上下文”的使用,这是一个强大的功能,用于跨 API 边界管理范围、截止日期、取消信号和其他请求范围的值,尤其是在处理超时和取消信号方面。

在 GitHub Actions 中将私有 Go 模块与 golangci-lint 配合使用
本文提供了有关如何通过 GitHub Actions 将 golangci-lint(一种用于 Go 项目中持续集成 (CI) 的开源工具)用于具有私有模块的项目的分步指南。

为什么 Golang 标准库有 io.ReadFull但没有 io.WriteFull
LinuxExam.net 文章讨论了 Golang 标准库中的不一致,特别是缺少函数 io。

学习C++20, 为Go的atomic类型插上一双翅膀
这篇文章介绍了如何利用C++20规范中atomic类型的wait/notify\_one/notifi\_all的功能,实现类似Java中的wait/notification/notificationAll的功能。 这三个方法类似于Go中的Cond(条件变量)的Wait/Signal/Broadcast方法。 XXX和Cond实现wait/signal/broadcast的功能,以及如何使用原子x改写上面的例子。 此外,文章还介绍了解决ABA问题的方法,即在原子量的值的基础上增加一个版本号,每次变化的时候,版本号也会变化,这样等待者就可以检查版本号是否变化了,如果变化了、就不会阻塞。

使用 Go 进行 Facebook 身份验证
Manoj Shrestha 的文章提供了有关如何将 Facebook 登录与 Go 编程语言集成的分步指南,从创建 Facebook 开发人员帐户、创建应用程序和设置 Facebook 登录设置开始。

云原生技术

C23 中已弃用的属性的作用远不止标记过时
C23 中的“deprecated”属性在 C23 版本的 Modern C 中引入,用于将功能标记为过时,警告用户不要使用它们,也可以放置在代码的内部方面,这些方面需要仔细维护或将来可能会更改。

2023 年的 OpenTelemetry - 我们从社区和用户那里学到了什么
OpenTelemetry项目已经筹集了650万美元来构建开源可观测性的未来,已成为Linux基金会开源项目列表中第二活跃的项目,AWS,Google,Microsoft和Splunk等大公司都参与了该项目。

使用多阶段构建和无发行版方法优化Docker镜像
本文讨论了为 Go 应用程序优化 Docker 映像的过程,使用多阶段构建和 Distroless 方法显著减小映像大小、提高部署速度并最大限度地减少资源使用。

2023 年 CNCF 社区排名前 10 的可观测性资源
云原生计算基金会 (CNF) 社区分享了 2023 年排名前 10 位的可观测性资源,包括博客文章、项目、网络研讨会等,以增强所有技能水平的从业者的能力。

热门 PKI 用例
公钥基础设施 (PKI) 是一种灵活且可扩展的安全解决方案,符合零信任标准,为各种企业用例提供灵活且可扩展的身份优先安全解决方案,包括服务器证书、SSH 密钥、无密码身份验证、DevSecOps 的证书管理、私有证书颁发机构、经过身份验证的 IoT 设备,对于身份优先的安全性至关重要。

Monzo 的经验教训:AWS 重新发明:深入了解构建数字银行
本文深入探讨了拥有 800 万个账户的数字银行公司 Monzo 及其在 AWS 上运行的基础设施和可靠性团队,截至 2019 年,包括 1500 个微服务和 9000 个正在生产的 Pod。

Amazon Elastic Container Registry (ECR) 综合指南
该文档提供了 Amazon Elastic Container Registry (ECR) 的综合指南,ECR 是 Amazon Web Services (AWS) 提供的一项完全托管的服务,使用户能够存储、管理和部署 Docker 容器映像。

AI

狠人用500行SQL实现GPT大模型

Luke Vincent 的分层神经网络基础知识
这篇博文详细介绍了分层神经网络的基本概念,包括其结构、组件和激活函数的作用,并解释了神经网络如何组织成层,每个层都有自己的输出。

100+ Best ChatGPT Prompts for All Kinds of Workflow
The article "100+ Best ChatGPT Prompts for All Kinds of workflows" by GGR on Medium provides over 100 ChatGPT prompts designed to streamline daily tasks and enhance productivity.

流行工具与项目

ubuygold/go-noss

aaamoon/copilot-gpt4-service
将 Github Copilot 请求转换为 ChatGPT 请求,免费使用 GPT-4 模型。

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

apache/incubator-answer
适用于任何规模团队的问答平台软件。无论是社区论坛、帮助中心还是知识管理平台,您始终可以信赖 Apache Answer。

cert-manager/cert-manager
在 Kubernetes 中自动配置和管理 TLS 证书

zeromicro/go-zero
带有 cli 工具的云原生 Go 微服务框架,可提高工作效率。

k8sgpt-ai/k8sgpt
赋予每个人 Kubernetes 超能力

cloudreve/Cloudreve
🌩支持多家云存储的云盘系统 (Self-hosted file management and sharing system, supports multiple storage providers)

cursusdb/cursusdb
CursusDB 是一个开源的分布式内存数据库,但具有实时功能的持久化文档。

go-kratos/kratos
面向云原生时代的终极 Go 微服务框架。

jackc/pgx
适用于 Go 的 PostgreSQL 驱动程序和工具包

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

livekit/livekit
WebRTC 的端到端堆栈。交换网板介质服务器和SDK。

prometheus-operator/prometheus-operator
Prometheus Operator 在 Kubernetes 上创建/配置/管理 Prometheus 集群

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

gravitational/teleport
保护对所有基础架构的访问。

dolthub/dolt
Dolt – 用于数据的 Git

kedacore/keda
KEDA 是基于 Kubernetes 的事件驱动自动缩放组件。它为在 Kubernetes 中运行的任何容器提供事件驱动的扩展

swaggo/swag
使用 Swagger 2.0 for Go 自动生成 RESTful API 文档。

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

pingcap/tidb
TiDB 是一个开源、云原生、分布式、兼容 MySQL 的数据库,支持弹性扩展和实时分析。免费试用 AI 驱动的 Chat2Query:https://tidbcloud.com/free-trial

golang/protobuf
Go 支持 Google 的协议缓冲区

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

etcd-io/etcd
分布式可靠的键值存储,用于存储分布式系统中最关键的数据

kubernetes-sigs/external-dns
为 Kubernetes 入口和服务配置外部 DNS 服务器(AWS Route53、Google CloudDNS 等)


编辑: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