GopherDaily

2023-08-07

每日一谚:Stop excessive DRYing, sugaring, and abstracting if it makes your code harder to understand for newcomers.


Go技术生态

类型前的名称:为什么“age int”比“int age”更好
作者认为变量的名称比其类型更重要,因此名称应该更突出,并且在声明中排在第一位。作者引用了 Go FAQ 作为选择在类型之前写入名称的语言示例,该语言比 C 语言更简单且更不容易出错。作者还认为,该名称具有更多的语义含义,并且更容易在模式语法中发现,例如在Protocol Buffers和Cap'n Proto中。

让Go接口为您所用
本文讨论了接口在 Go 编程中的重要性,以及如何将它们用于模拟、脚手架、易失性和互操作性。作者使用开/关开关的示例来说明如何使用接口使代码更易于理解和开发。

Cadence 1.0:uber发布可扩展的工作流编排平台
经过六年的开发,Uber发布了一个名为Cadence的工作流编排平台的主要版本,该团队的目标是提高后续版本的可用性,可观察性和效率。该平台有助于大规模处理复杂的有状态工作流,同时考虑到效率和可靠性,并且工作流直接在Java,Go,Python或Ruby等编程语言中定义。

使用Go的cobra CLI实现自动补全
本文介绍如何使用 Cobra 框架为 Go 编写的 CLI 工具实现自定义自动完成,Cobra 框架是一个用于创建功能强大的现代 CLI 应用程序的库。

使用短期证书保护TLS secrets
元维基引入了短期证书 (SLC),以进一步保护其边缘网络上的传输层安全性 (TLS) 私钥,与传统证书相比,这些私钥的暴露时间非常短,并降低了泄露私钥被滥用的机会。然而,实施 SLC 要求 Meta 解决可操作性和可靠性之间的权衡问题,同时满足其边缘环境的严格安全要求。

恶意软件逆向工程 – 揭开恶意软件中加密的秘密
本文讨论了使用逆向工程来解开恶意软件加密的秘密,由 Ryan Robinson 和 Nicole Fishbein 撰写,并在 theintezer.com 博客上分享。

让我们用Go和RPC来实现一个基本的领导者选举算法吧
使用RPC实现了一个基本的领导者选举算法。作者受到《数据库内幕》一书中一个章节的启发,决定实现bully algorithm来管理分布式系统中的领导者选举。

云原生技术

为什么你应该在源代码之外寻找暴露的secret
本文讨论了超越源代码寻找暴露机密的重要性,以防止对软件供应链的攻击。本文还讨论了机密可能暴露的许多位置,包括问题和注释、CI/CD 系统、可观测性平台和容器映像。

开发面向 DDD 的微服务
本文探讨了开发面向域驱动设计 (DDD) 的微服务所涉及的关键原则和步骤,这是一种软件开发方法,强调基于软件所服务的领域对软件进行建模。

手机游戏引擎的优化
ֻ Ϸ Ż. . .

《黑客与画家》重读书摘
《黑客与画家》是保罗·格雷厄姆的经典著作,也是他对计算机的思考和思考方式的论述。

精彩的学习资源
本文提供了有关如何学习编程的建议汇编,包括欧拉项目,现代操作系统,Nand到俄罗斯方块,CSES问题集,编译器和软件体系结构。

K8s operator — 同步 Kubernetes 集群外的资源
Maxime Guilbert 的文章讨论了使用 Operator SDK(一个 Go 框架)来创建运算符,以及它如何允许使用任何 API 或服务来管理资源。本文还讨论了使用专用 API 来管理资源,例如 Python Kubernetes 库或 Kubernetes API,以自动管理客户堆栈。

AI

生成式AI:传统编程的新版本
生成式AI(AGI)正在改变软件开发的方式,但并不像某些人想象的那么显着,而ChatGPT等AI编码助手可以帮助开发人员更有效地利用时间。

流行工具与项目

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

lxc/incus
强大的系统容器和虚拟机管理器

knadh/listmonk
高性能、自托管、时事通讯和邮件列表管理器,具有现代仪表板。单个二进制应用程序。

syncthing/syncthing
开源连续文件同步

jesseduffield/lazygit
用于 git 命令的简单终端 UI

tailscale/tailscale
使用WireGuard和2FA的最简单,最安全的方式。

JanDeDobbeleer/oh-my-posh
最具可定制性和低延迟的跨平台/外壳提示渲染器

bxcodec/go-clean-arch
基于阅读鲍勃叔叔的干净架构的Go(Golang)清洁架构

Mrs4s/go-cqhttp
cqhttp的golang实现,轻量、原生跨平台.

heroiclabs/nakama
用于社交和实时游戏和应用程序的分布式服务器。

spacemeshos/go-spacemesh
Go 实现 Spacemesh 协议全节点。

alist-org/alist
一个支持多存储的文件列表/WebDAV程序,使用 Gin 和 Solidjs。

caddyserver/caddy
具有自动 HTTPS 功能的快速且可扩展的多平台 HTTP/1-2-3 Web 服务器

Dreamacro/clash
Go 中基于规则的隧道。

bettercap/bettercap
瑞士军刀用于802.11,BLE,IPv4和IPv6网络侦察和MITM攻击。

PuerkitoBio/goquery
有点像那个j-thing,只是在Go中。

cloudflare/cloudflared
Cloudflare Tunnel 客户端(以前称为 Argo Tunnel)

uoosef/bepass
用go编写的简单DPI旁路工具

twpayne/chezmoi
安全地跨多台不同的计算机管理您的点文件。

linkerd/linkerd2
适用于 Kubernetes 的超轻量级、安全第一的服务网格。Linkerd 2.x 的主存储库。

yonahd/kor
发现未使用的 Kubernetes 资源的工具

ariga/atlas
用于管理数据库架构的现代工具

tinygo-org/tinygo
为小地方提供编译器。微控制器、WebAssembly (WASM/WASI) 和命令行工具。基于 LLVM。


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