2020年11月12日
大家好,我是知识铺。前段时间 Go 语言的泛型讨论频频出现在各微信群,且又冲上了国内外各大文章的 “头条”: 信息汇总来看,Go 泛型这几年会出,但大体来讲现在 Go 泛型又又又推迟了,好家伙。我最早了解到时是考虑 Go1.16 释出,后面又推到了 Go1.17,接着现在又延期到了 Go1.18 了(2021 年底)。 看到了信息……
阅读全文
2020年11月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……
阅读全文
2020年11月7日
大家好,我是知识铺。 在所有的语言中,反射这一功能基本属于必不可少的模块。虽说 “反射” 这个词让人根深蒂固,但更多的还是 WHY。反射到底是什么,反射又是基于什么法则实现的? 今天我们通过这篇文章来一一揭晓,以 Go 语言为例,了解反射到底为何物,其底层又是如何实现的。 反射是什么 在计算机学中,……
阅读全文
2020年10月28日
”Hello World“ 程序几乎是每个程序员入门和开发环境测试的基本标准。代码如下: #inclue <stdio.h> int main() { printf("Hello Wolrd\n"); return 0; } 编译该程序,再运行,就基本完成了所有新手的第一个程序。表面看起来轻轻松松,毫无悬念。但是实际上单纯这几下操作,就已经包含了不少暗操作。本着追根溯源的目的,我们将进一步对其流程进……
阅读全文
2020年10月17日
最近在翻阅文章时,看到全成推荐的《程序员的自我修养》,这是一本讲链接、装载与库的计算机图书,看了下目录后觉得挺有意思。 因此决定每读一章就将其读书笔记整理记录下来,分享给大家。 目录: 不要让 CPU 打盹 在计算机发展早期,CPU 资源十分昂贵。如果一个 CPU 只能运行一个程序,那么当程序在读写磁盘(……
阅读全文
2020年10月8日
自古应用程序均从 Hello World 开始,你我所写的 Go 语言亦然: import "fmt" func main() { fmt.Println("hello world.") } 这段程序的输出结果为 hello world.,就是这么的简单又直接。但这时候又不禁思考了起来,这个 hello world. 是怎么输出来,经历了什么过程。 真是非常的好奇,今天我们就通过这篇文章来一探究竟。 引导阶段 查找入口 开始剖析之路,首先编译上文提……
阅读全文
2020年10月6日
在前文 《限流熔断是什么,怎么做,不做行不行?》中针对 “限流” 动作,有提到流量控制其内部对应着两种常用的限流算法,分别是漏桶算法和令牌桶算法。因此会有的读者会好奇,这都是些啥? 为了更进一步的了解 WHY,本文来快速探索一下,看看限流下的一些 “算法” 们到底有何作用,是为何成为流量控制的……
阅读全文
2020年10月5日
“在分布式应用中,最常见的问题是什么呢?” “一个分布式应用部署上去后,还要关注什么?” “这服务的远程调用依赖似乎有点多…” 前言 在 《微服务的战争:级联故障和雪崩》中有提到,在一个分布式应用中,最常见,最有危险性之一的点就是级联故障所造成的雪崩,而其对应的解决方案为根据……
阅读全文
2020年9月13日
“你说说,没有仪表盘的车,你敢开吗?” “没有仪表盘的车开在路上,你怎么知道现在是什么情况?” “客户说你这车又崩了,咋知道什么时候好的?啥时候出的问题?” 前言 将思考转换到现实的软件系统中,可想而知没有监控系统的情况下,也就是没有 ”仪表盘“ 的情况下实在是太可怕了。 你的故障永远都是你……
阅读全文
2020年9月11日
以前经常有读者问我,哪儿可以找到 Go 语言的前世今生,这种时候我们往往会告诉他去看 issues 和 proposals。但资料有点分散,且没有索引体系。因此不少人新入门的读者读着读着就跑偏了,又或是在第一步找资料上就被拦住了。 最近欧神(@changkun)低调的发布了 《Go: A Documentar……
阅读全文