GopherDaily

GopherDaily

2023-12-16

每日一谚:Code quality is limited by test quality.


Go技术生态

通过实例理解OAuth2授权
理解一下oauth2的授权协议,并用实例做了个演示,供大家参考

在Go中使用的构建标记和常量部分模拟#ifdef
Chris Siebenmann 讨论了使用构建标记和死代码消除 (DCE) 在 Go 代码中部分模拟 #ifdef 的过程,并指出这种方法的有效性取决于代码的特定需求。

使用Go访问Google Gemini模型
Eli Bendersky 的网站提供了使用 Go 编程语言使用 Google 新的多模态长短期记忆 (LLM) 模型的指南,并提供了如何使用 Go SDK 向模型提出混合文本和图像的问题的示例。

使用GraphQL订阅进行实时通信 — 交易应用程序示例
本文讨论了在交易应用程序中实时通信中使用 GraphQL 订阅,重点介绍了它们的好处,例如提高灵活性、改善开发人员体验、减少服务器负载和增强数据一致性。

Dolt 并发事务示例
这篇博文讨论了世界上第一个版本控制的 SQL 数据库 Dolt 和 MySQL 之间的差异,重点介绍了 Dolt 在提交事务时如何使用相同的合并逻辑,从而导致与 MySQL 或 Postgres 相比并发事务的结果不同。

TiDB 双地域备份:经济实惠的跨地域容灾
TiDB Dedicated 是一款全托管云 DBaaS,通过双地域备份功能,提供经济高效的容灾解决方案,支持自动备份到指定地域,保障数据保护,增强容灾能力。

先整理一下?肯特·贝克(Kent Beck)对实证软件设计的见解总结
该文档是一条 404 错误消息,指示尚未找到页面,并且用户被定向到网站的首页,该页面 https://www.workingsoftware.dev

云原生技术

芬兰开发者日记 — 工作与生活的平衡
本文讨论了芬兰开发人员的生活方式,强调了在芬兰在家工作的灵活性,一些公司允许全职远程工作,而另一些公司则将其视为障碍。

保护 Kubernetes 部署的最佳实践
Sunny Bhambhani 的文章提供了保护 Kubernetes 部署的最佳实践,强调了设置安全设置的重要性,例如“securityContext.allowPrivilegeEscalation”、“runAsNonRoot”、“readOnlyRootFilesystem”、“runASUser”、“run AsGroup”、“capabilities”、“resources”。限制。CPU“、”resources-requests.memory“、”residues“、”image“、”namespace“和”image tag“,以防止安全风险。

博客:Kubernetes 1.29:CSI 存储大小调整已通过身份验证,并在 v1.29 中正式发布
Kubernetes 版本 v1.29 在 CSI(容器存储接口)存储大小调整操作期间引入了对身份验证的支持,从而在底层存储操作需要后端集群操作凭据的情况下支持卷扩展。

探索 Aya:Rust 的 eBPF 编程门户
弗拉基米尔·德米多夫 (Vladimir Demidov) 的博客文章探讨了将 Aya 框架与 Rust 结合使用进行 eBPF 编程,这是 Linux 内核中的一种技术,允许以高效、安全的方式执行沙盒程序。

了解使用 Logrotate 进行系统日志管理
Linux Journal 文章讨论了 Logrotate 的使用,Logrotate 是一种实用工具,旨在简化日志文件的维护,这对于诊断问题、了解用户活动和确保系统安全至关重要。

实现微服务架构的 4 条指导原则
Hardik Shah 的文章提供了实现微服务架构的四个指导原则,强调了遵循康威定律、避免意外单体系统、使用服务对象重构单体应用程序以及设计智能端点和哑管道的重要性。

首届 Netflix 数据工程峰会
Netflix 于 2023 年 12 月举办了首届数据工程峰会,来自全公司的工程师分享了数据处理各个方面的最佳实践,包括 Netflix 数据工程堆栈、数据处理模式、使用 Apache Flink 在 Data Mesh 上流式处理 SQL、构建可靠的数据管道、利用机构数据进行知识管理,以及将媒体数据用于 ML Studio 创意制作。

为什么 LinkedIn 没有迁移到 Azure?
LinkedIn最初于2019年宣布迁移到Microsoft Azure,但由于高需求和公司开发企业技术的历史,尽管Microsoft成功地从一家老牌企业IT提供商转型为一家现代云公司,但由于需求旺盛,该公司已被无限期暂停。

高效的云原生应用部署 — KCL 和 KubeVela 集成快速指南
KCL 编程语言提供了如何使用 KubeVela 和 KCL 部署云原生应用的快速指南,重点介绍了这两种工具的优势,例如更简单的配置、更好的可维护性、简化的操作和改进的跨团队协作。

Google 开源 Peer Bonus 计划公布了 2023 年第二批获奖者
Google 开源同行奖金计划宣布了 2023 年周期的第二批获奖者,以表彰 Google 员工提名的外部开源贡献者,以表彰他们对开源项目的杰出贡献。

Mitchell 在离开 HashiCorp 时反思道
HashiCorp 的联合创始人 Mitchell Hashimoto 在工作超过 11 年后宣布离开公司,回顾了他在那里的时光,并表示他愿意接受新的挑战。

AI

凭借 Gemini Pro,谷歌在 GenAI 竞赛中争夺头把交椅
谷歌发布了 Gemini Pro AI 模型,该模型旨在供开发人员使用,使其成为 GenAI 竞赛的潜在领导者。

生成式人工智能研究的新兴趋势:近期论文精选
该文档介绍了生成式人工智能的最新研究论文,涵盖数据修剪、数据来源、数据质量和数据可访问性等主题。

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

构建还是购买基于云的生成式 AI?
本文讨论了构建或购买基于云的生成器 AI 平台的利弊,强调虽然 DIY 提供了完全的定制和控制,但它也需要一个专门的团队,并增加了成本和风险。

使用生成式 AI 面向未来:技能提升是否必不可少?
Ashlea Atigolo 讨论了提升技能在生成式 AI 中的重要性,强调了其在提高技术角色的生产力和创新方面的潜力,但也强调了它带来的挑战和挑战。

SAIL师生荣获NeurIPS优秀论文奖
来自斯坦福大学人工智能实验室的Sanmi Koyejo和他的学生获得了NeurIPS的杰出论文奖,而Chris Manning,Stefano Ermon,Chelsea Finn和他们的学生则获得了杰出论文亚军。

流行工具与项目

miekg/dns
Go 中的 DNS 库

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

nikolaydubina/go-recipes
🦩 Go 项目工具

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

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

cloudnative-pg/cloudnative-pg
CloudNativePG 是一个 Kubernetes Operator,它使用原生流式复制,覆盖了具有主/备用架构的 PostgreSQL 数据库集群的整个生命周期

databus23/helm-diff
一个 helm 插件,显示一个差异,解释 helm 升级将更改什么

google/uuid
基于 RFC 4122 和 DCE 1.1 的 UUID Go 包:身份验证和安全服务。

hashicorp/terraform-provider-aws
Terraform AWS 提供程序

grafana/agent
供应商中立的可编程可观测性管道。

stretchr/testify
一个具有常见断言和模拟的工具包,可以很好地与标准库配合使用

golang/go
Go 编程语言

moby/buildkit
并发、高效缓存且与 Dockerfile 无关的构建器工具包

containers/podman
Podman:用于管理 OCI 容器和 Pod 的工具。

fyne-io/fyne
受 Material Design 启发的 Go 跨平台 GUI 工具包

Snowflake-Labs/terraform-provider-snowflake
用于管理 Snowflake 帐户的 Terraform 提供程序

volatiletech/sqlboiler
生成针对数据库模式量身定制的 Go ORM。

BishopFox/sliver
对手仿真框架

expr-lang/expr
Go 的表达式语言和表达式计算

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

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

kubevirt/kubevirt
Kubernetes 虚拟化 API 和运行时,用于定义和管理虚拟机。

kubernetes/autoscaler
Kubernetes 的自动缩放组件

go-chi/chi
轻量级、惯用且可组合的路由器,用于构建 Go HTTP 服务

dgraph-io/badger
Go 中的快速键值数据库。


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