Web Analytics

聊聊Prometheus Gauge的增减操作实现

本文永久链接 – https://tonybai.com/2023/01/10/how-prometheus-gauge-add-and-sub 1. Gauge是啥? 熟悉Prometheus的小伙伴们都知道Prometheus提供了四大指标类型: Counter Gauge Histogram Summary Histogram和Summary是一类,但理解起来稍复杂一些,这里我们暂且不提。Counter顾名思义“计数器”,仅提供了Add方法,是一个一直递增的数值;而Gauge直译为“仪表盘”,它也是一个数值,但和Counter不同,它不仅提供Add方法,还提供了Sub方法。如果你的指标可增可减或是需要支持负数,那么Gauge显然是一个比Counter更适合的指标类型。 ...

January 10, 2023 · 6 min · Tony Bai

2022年Go语言盘点:泛型落地,无趣很好,稳定为王

本文永久链接 – https://tonybai.com/2022/12/29/the-2022-review-of-go-programming-language 早早就计划好在年前写一个Go语言年度盘点,就像2020年和2021年那样。但恰逢国内疫情管控放开,一波阳了之后身体十分容易疲劳,再加上工作上的事情挺多,这篇盘点也就迟迟没能下笔。 今年的盘点思路将围绕三个关键字来展开:泛型、无趣(boring)和稳定。下面我们逐一来看看。 ...

December 29, 2022 · 11 min · Tony Bai

Go类型系统:有何与众不同

本文永久链接 – https://tonybai.com/2022/12/18/go-type-system Go是一门强类型的静态编程语言。使用Go编程,我们的每一行代码几乎都离不开类型。因此,深入学习Go,我们首先要对Go的类型系统(type system)有一个全面和深入的认知。Go类型系统可以给予我们一个全局整体的视角,以帮助我们更好地学习和理解Go语言中那些具体的与类型相关的内容。 ...

December 18, 2022 · 8 min · Tony Bai

Go为什么能成功

本文永久链接 – https://tonybai.com/2022/12/07/why-go-succeed 大家在入门Go语言时,多埋头于Go语法,忙于练手或快速完成公司的项目,无暇思考。 但当大家到了要进阶,要冲刺高级阶段的时候,我建议你不能再稀里糊涂了。既然入了Go这个坑,在进入高级阶段前,我们最好在门口的“影壁墙”前驻留一下。 ...

December 7, 2022 · 11 min · Tony Bai

这可能是最权威、最全面的Go语言编码风格规范了!

本文永久链接 – https://tonybai.com/2022/11/26/intro-of-google-go-style 每种编程语言除了固定的语法之外,都会有属于自己的地道的(idiomatic)写法。其实,自然语言也不例外,你想,你用心想想是不是这样。 ...

November 26, 2022 · 6 min · Tony Bai

Go 1.20新特性前瞻

本文永久链接 – https://tonybai.com/2022/11/17/go-1-20-foresight 在近期Russ Cox代表Go核心团队发表的“Go, 13周年”一文中,他提到了“在Go的第14个年头,Go团队将继续努力使Go成为用于大规模软件工程的最好的环境,将特别关注供应链安全,提高兼容性和结构化日志记录,当然还会有很多其他改进,包括profile-guided optimization等”。 ...

November 17, 2022 · 11 min · Tony Bai

使用反射操作channel

本文永久链接 – https://tonybai.com/2022/11/15/using-reflect-to-manipulate-channels 今年教师节极客时间送给讲师4999 SVIP卡,一直没顾过来用,上周激活后在极客时间的众多精品课和专栏中徜徉,收获颇丰。尤其是在拜读鸟窝老师的《Go并发编程实战课》 后,get到一个以前从未用过的“技能点”:使用reflect操作channel,这里整理一下,把它分享给大家。 ...

November 15, 2022 · 11 min · Tony Bai

Go,13周年[译]

本文永久链接 – https://tonybai.com/2022/11/11/go-opensource-13-years 在中华大地的老百姓抱着手机进行双十一购物节狂欢,忙着支付尾款和秒杀的时候,Go核心团队的Russ Cox代表Go语言项目团队在Go官博上发表了《Thirteen Years of Go》的博文,纪念Go语言开源13周年,并对2021年以来Go语言的演进进行了归纳总结,对Go在其第14个年头将要做的改进也做了简单的说明。这里对博文做简单翻译,供大家参考。 ...

November 11, 2022 · 7 min · Tony Bai

通过实例理解Go标准库context包

原weibo账号处于jy状态,临时先用小号 https://weibo.com/u/6484441286,欢迎大家关注! “Gopher部落”知识星球双十一新人特惠,领劵加入即享立减88元优惠 – https://t.zsxq.com/078E1QTjM 本文永久链接 – https://tonybai.com/2022/11/08/understand-go-context-by-example 自从context包在Go 1.7版本加入Go标准库,它就成为了Go标准库中较难理解和易误用的包之一。在我的博客中目前尚未有一篇系统介绍context包的文章,很多来自Go专栏或《Go语言精进之路》的读者都希望我能写一篇介绍context包的文章,今天我就来尝试一下^_^。 ...

November 8, 2022 · 19 min · Tony Bai

slog:Go官方版结构化日志包

本文永久链接 – https://tonybai.com/2022/10/30/first-exploration-of-slog Go自诞生以来就在其标准库内置了log包作为Go源码输出日志的标准组件,该包被广泛应用于Go标准库自身以及Go社区项目中。 不过,针对Go标准库log包,Go社区要求改进的声音始终不断,主流声音聚焦在以下几点: log包是为了方便人类可读而设计的,不支持便于机器解析的结构化日志(比如像zap那样输出json格式的日志); 不支持日志级别(log level); log包采用专有日志输出格式,又没有提供可供Go社区共同遵循的Logger接口类型,导致Go社区项目使用的log输出格式五花八门,相互之间又难以兼容。 Go社区曾经尝试过合力改进标准库log包,并撰写了Proposal设计初稿,但最终因各种原因都没有被Go核心团队接受。 ...

October 30, 2022 · 11 min · Tony Bai