为什么 Go 的泛型一拖再拖?

大家好,我是知识铺。前段时间 Go 语言的泛型讨论频频出现在各微信群,且又冲上了国内外各大文章的 “头条”: 信息汇总来看,Go 泛型这几年会出,但大体来讲现在 Go 泛型又又又推迟了,好家伙。我最早了解到时是考虑 Go1.16 释出,后面又推到了 Go1.17,接着现在又延期到了 Go1.18 了(2021 年底)。 看到了信息……

阅读全文

Go 语言今年 11 岁,何去何从,现状到底如何?

不说不知道,一说下一跳。Go 语言已经开源 11 周年了,感觉是一路高歌,Release History (polarisxu 整理)如下: 2011 年 3 月 16 日,Go 语言的第一个稳定版本 r56 发布; 2012 年 3 月 28 日,Go 语言的第一个正式版本 Go1 发布,并承诺 1.x 的 兼容性; 2013 年 5 月 13 日,Go1.1 正式版才发布。 2013 年 12 月 1 日,Go……

阅读全文

解密 Go 语言之反射 reflect

大家好,我是知识铺。 在所有的语言中,反射这一功能基本属于必不可少的模块。虽说 “反射” 这个词让人根深蒂固,但更多的还是 WHY。反射到底是什么,反射又是基于什么法则实现的? 今天我们通过这篇文章来一一揭晓,以 Go 语言为例,了解反射到底为何物,其底层又是如何实现的。 反射是什么 在计算机学中,……

阅读全文

应用编译,计算机中那些一定要掌握的知识细节

”Hello World“ 程序几乎是每个程序员入门和开发环境测试的基本标准。代码如下: #inclue <stdio.h> int main() { printf("Hello Wolrd\n"); return 0; } 编译该程序,再运行,就基本完成了所有新手的第一个程序。表面看起来轻轻松松,毫无悬念。但是实际上单纯这几下操作,就已经包含了不少暗操作。本着追根溯源的目的,我们将进一步对其流程进……

阅读全文

必知必会!计算机里一些基本又重要的概念

最近在翻阅文章时,看到全成推荐的《程序员的自我修养》,这是一本讲链接、装载与库的计算机图书,看了下目录后觉得挺有意思。 因此决定每读一章就将其读书笔记整理记录下来,分享给大家。 目录: 不要让 CPU 打盹 在计算机发展早期,CPU 资源十分昂贵。如果一个 CPU 只能运行一个程序,那么当程序在读写磁盘(……

阅读全文

Go 应用程序是怎么运行起来的?

自古应用程序均从 Hello World 开始,你我所写的 Go 语言亦然: import "fmt" func main() { fmt.Println("hello world.") } 这段程序的输出结果为 hello world.,就是这么的简单又直接。但这时候又不禁思考了起来,这个 hello world. 是怎么输出来,经历了什么过程。 真是非常的好奇,今天我们就通过这篇文章来一探究竟。 引导阶段 查找入口 开始剖析之路,首先编译上文提……

阅读全文

带你快速了解:限流中的漏桶和令牌桶算法

在前文 《限流熔断是什么,怎么做,不做行不行?》中针对 “限流” 动作,有提到流量控制其内部对应着两种常用的限流算法,分别是漏桶算法和令牌桶算法。因此会有的读者会好奇,这都是些啥? 为了更进一步的了解 WHY,本文来快速探索一下,看看限流下的一些 “算法” 们到底有何作用,是为何成为流量控制的……

阅读全文

限流熔断是什么,怎么做,不做行不行?

“在分布式应用中,最常见的问题是什么呢?” “一个分布式应用部署上去后,还要关注什么?” “这服务的远程调用依赖似乎有点多…” 前言 在 《微服务的战争:级联故障和雪崩》中有提到,在一个分布式应用中,最常见,最有危险性之一的点就是级联故障所造成的雪崩,而其对应的解决方案为根据……

阅读全文

想要4个9?本文告诉你监控告警如何做

“你说说,没有仪表盘的车,你敢开吗?” “没有仪表盘的车开在路上,你怎么知道现在是什么情况?” “客户说你这车又崩了,咋知道什么时候好的?​啥时候出的问题?” 前言 将思考转换到现实的软件系统中,可想而知没有监控系统的情况下,也就是没有 ”仪表盘“ 的情况下实在是太可怕了。 你的故障永远都是你……

阅读全文

Go: A Documentary 发布!

以前经常有读者问我,哪儿可以找到 Go 语言的前世今生,这种时候我们往往会告诉他去看 issues 和 proposals。但资料有点分散,且没有索引体系。因此不少人新入门的读者读着读着就跑偏了,又或是在第一步找资料上就被拦住了。 最近欧神(@changkun)低调的发布了 《Go: A Documentar……

阅读全文