主页 | Web版 | 订阅 | 归档 | Feed

GopherDaily

2024-08-20

每日一谚:Do not be afraid to copy, when it makes sense


Go技术生态

继Ollama之后,Go在AI领域再下一城
danielmiessler/fabric是一个旨在通过AI增强人类能力的开源框架。该项目由Daniel Miessler(号称Founder of Unsupervised Learning)于2024年1月创建,目前在GitHub上已获得20k+的star。最初该项目是用Python实现的,近期,fabric刚刚完成了从Python到Go的迁移。

探索基于pion开发的WebRTC应用的建连过程(sponsor)
解释webrtc建连过程的最后一篇文章,用一个实例以及对实例运行的日志分析,说明建连过程的每个环节。

向Go添加函数关键字参数并不简单
Chris Siebenmann 讨论了向 Go 添加函数关键字参数的挑战,包括潜在的 ABI 问题、高效实现的需求以及对共享库的影响。

字节跳动开源Linux内核网络抓包工具netcap
字节跳动 STE 团队基于ebpf技术和go开发了下一代内核网络抓包工具:netcap(net capture,内部原名:xcap)

GopherCon UK 2024 播放列表
该文件是YouTube的资源列表,包括其关于,新闻,版权,联系方式,广告,开发人员,条款,隐私,政策和安全,YouTube的运作方式,以及其NFL周日门票功能。

使用 HTMX 和 Golang 上传文件
该文档提供了如何使用 HTMX 和 Golang 创建用于上传文件的简单服务器的指南,包括设置 Go 项目、安装依赖项、创建 HTML 模板、处理上传和测试上传。

Go中类型转换综合指南
本文提供了 Go 中类型转换和转换的综合指南,解释了如何在基本类型、自定义类型、指针、接口、通道、结构体、数组、函数和切片之间进行转换,以确保代码安全和理解。

FauxRPC 简介
本文介绍了 fauxRPC,这是一种通过生成 gRPC、gRPC-Web、Connect 和 REST 服务的虚假实现来加速开发和测试的工具,提供隔离、多协议支持、原型设计、协作和与其他工具的兼容性等功能,并可作为开源项目使用。

理解 Golang 接口契约
阿卜杜勒阿齐兹·萨阿达拉(Abdulaziz Saadallah)的文章解释了Go中提供者级接口和消费者级接口之间的区别,强调了它们在编写干净代码中的重要性,以及在消费者级别定义接口以满足特定需求的必要性。

Go:解锁全栈 Web 开发的力量
Muhammad Arslan 讨论了 Go 编程语言在全栈 Web 开发中的日益普及,强调了其速度、简单性和强大的并发特性,并提出了将其与各种前端框架集成的流行技术堆栈。

Sourcegraph 变暗了
埃里克·弗里茨(Eric Fritz)是Sourcegraph的前雇员,他讨论了在公司将其存储库私有后管理对其工作引用的经验,包括将链接移动到他控制下的新存储库的过程。

C4 模型中的系统布局图
本文讨论了在 C4 模型中使用系统布局图(级别 0)和域图来提供多系统架构的组织概述,解决 1 级图的可扩展性问题。

云原生技术

Istio 1.23 放弃了 sidecar,以获得更简单的“环境网格”
新发布的 Istio 服务网格 1.23 版本引入了“环境网格”选项,该选项简化了部署并可以减少延迟,从而有可能改变处理 Kubernetes 流量的方式。

好的重构与坏的重构
这篇博客文章讨论了重构在软件开发中的重要性,强调了常见的陷阱,例如更改编码样式、引入不必要的复杂性、不一致、过度压缩代码以及不理解业务上下文,并提供了成功重构的技巧,包括使用 linting、代码审查、测试和 AI 工具。

protocol buffer设计:协作开发的原则和实践
来自 Lyft Engineering 的 Roman Kotenko 分享了使用协议缓冲区语言进行协作开发的原则和实践,强调了清晰度、可扩展性和跨实体常量,同时强调了协议缓冲区在高性能、向后兼容数据序列化方面的优势。

Kubernetes 1.31:从 SPDY 到 WebSockets 的流式过渡
在 Kubernetes 1.31 中,Kubernetes 客户端 kubectl 默认使用websocket streaming协议,而不是过时且未标准化的 sdpy协议,提高了某些命令的性能,并确保了与不同组件和编程语言的兼容性。

Red Hat OpenShift 和微服务架构中的身份验证和授权
本文介绍了身份验证和授权在 Kubernetes 和 Red Hat Kubernetes 中的作用,解释了它们在 Kubernetes 生态系统中的工作方式,包括使用 OIDC 和基于角色的访问控制等身份验证技术,以及如何在 Kubernetes 和基于 Kubernetes 的应用程序层中管理它们。

AI

开发者是否应该抑制对生成式人工智能的热情?
The New Stack 讨论了生成式 AI 在软件开发中的潜在缺点和好处,认为虽然它可能会提高生产力,但也可能使开发人员更难学习和解决问题,并可能导致行业紧张局势的回归。

流行工具与项目

danielmiessler/fabric
fabric 是一个开源框架,用于使用 AI 增强人类。它提供了一个模块化框架,用于使用一组可以在任何地方使用的众包 AI 提示来解决特定问题。

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

riverqueue/river
Go 中快速可靠的后台作业

charmbracelet/bubbletea
一个强大的小TUI框架 🏗

fatedier/frp
一种快速反向代理,可帮助您将 NAT 或防火墙后面的本地服务器暴露到 Internet 上。

amitshekhariitbhu/go-backend-clean-architecture
一个 Go (Golang) 后端干净架构项目,带有 Gin、MongoDB、JWT 身份验证中间件、Test 和 Docker。

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

cosmos/cosmos-sdk
⛓️ 构建高价值公共区块链✨的框架

evcc-io/evcc
Sonne tanken ☀️🚘

SagerNet/sing-box
通用代理平台

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

spf13/viper
用獠牙去配置

uber-go/mock
GoMock 是 Go 编程语言的模拟框架。

hashicorp/terraform-provider-azurerm
Azure Resource Manager 的 Terraform 提供程序

moby/moby
Moby Project - 一个容器生态系统的协作项目,用于组装基于容器的系统

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

fluxcd/flux2
面向 Kubernetes 的开放且可扩展的持续交付解决方案。由 GitOps Toolkit 提供支持。

seaweedfs/seaweedfs
SeaweedFS 是一个快速分布式存储系统,用于 blob、对象、文件和数据湖,适用于数十亿个文件!Blob 存储具有 O(1) 个磁盘查找、云分层。Filer 支持 Cloud Drive、跨 DC 双活复制、Kubernetes、POSIX FUSE 挂载、S3 API、S3 网关、Hadoop、WebDAV、加密、纠删码。

traefik/traefik
云原生应用程序代理

ccfos/nightingale
一个多合一的可观测性解决方案,旨在结合 Prometheus 和 Grafana 的优势。它管理警报规则,并在漂亮的 Web UI 中可视化指标、日志和跟踪。

google/cadvisor
分析正在运行的容器的资源使用情况和性能特征。

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

golangci/golangci-lint
Go 的快速 linters 运行器

schollz/croc
轻松安全地将内容从一台计算机发送到另一🐊 📦台计算机

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


编辑:Tony Bai

编辑主页:tonybai.com

GopherDaily项目:github.com/bigwhite/gopherdaily

Copyright 2019-2024 GopherDaily