Web Analytics

Go语言之禅

本文翻译自Go社区知名Gopher和博主Dave Cheney的文章《The Zen of Go》。 本文来自我在GopherCon Israel 2020上的演讲。文章很长:) 如果您希望阅读精简版,请移步到the-zen-of-go.netlify.com。 > 该演讲视频还未上线。如上线,我会把它更新到本文中的。 我应该如何编写出好代码? 我最近一直在思考很多事情,每当反思自己的工作成果时,...

February 24, 2020 · 23 min · Tony Bai

图解Go内存分配器

本文翻译自《A visual guide to Go Memory Allocator from scratch (Golang)》。 当我刚开始尝试了解Go的内存分配器时,我发现这真是一件可以令人发疯的事情,因为所有事情似乎都像一个神秘的黑盒(让我无从下手)。由于几乎所有技术魔法都隐藏在抽象之下,因此您需要逐一剥离这些抽象层才能理解它们。 在这篇文章中,我们就来这么做(剥离抽象层去了解隐藏在其下...

February 20, 2020 · 12 min · Tony Bai

Go modules:最小版本选择

一. 介绍 ----- 每个依赖管理解决方案都必须解决选择依赖项版本的问题。当前存在的许多版本选择算法都试图识别任何依赖项的“最新最大(latest greatest)”版本。如果您认为语义版本控制(sematic versioning)将被正确应用并且这种社会契约得到遵守,那么这是有道理的。在这样的情况下,依赖项的“最新最大”版本应该是最稳定和安全的版本,并且应与较早版本具有向后兼容性。至少在相...

December 21, 2019 · 14 min · Tony Bai

Kubernetes Deployment故障排除图解指南

* * * 下面是一个示意图,可帮助你调试Kubernetes Deployment(你可以在此处下载它的PDF版本)。 当你希望在Kubernetes中部署应用程序时,你通常会定义三个组件: * 一个**Deployment** – 这是一份用于创建你的应用程序的Pod副本的”食谱”; * 一个**Service** – 一个内部负载均衡器,用于将流量路由到内部的Pod上; * 一个**Ingr...

December 8, 2019 · 13 min · Tony Bai

计算重现性:一些挑战

> 写在Go语言开源十周年的日子 by Rob Pike 近期,有人对科学结果的可重现性进行了讨论,并得出了一些让人沮丧的结论。一项研究表明:这种可重现性只有62%。 在某些领域,情况可能更糟。任何依赖于计算的结果都面临着其编程环境不断变化的巨大风险:十年前编写的程序如果没有更改,今天构建成功的机会几乎微乎其微,更不用说运行或正确运行了。 这种担忧并不普遍,但正在增长。一个标志就是**十年重现性挑...

November 19, 2019 · 4 min · Tony Bai