通过实例深入理解sync.Map的工作原理
注:本文首发于笔者的个人微信公众号”iamtonybai”,是公号付费文章(价格1元)。首发于2020.10.9日,经过一个月收费期,我觉得将其免费分享出来。如果你觉得文章质量不错,欢迎到首发地址付费支持:https://mp.weixin.qq.com/s/rsDC-6paC5zN4sepWd5LqQ...
View ArticleGo,11周年
本文翻译自Go官方博客文章《Eleven Years of Go》,原作者:Russ Cox。 今天,我们一起庆祝Go语言正式开业发布11周年。去年的“Go turning 10”周年庆典聚会似乎已成为久远的回忆。这是艰难的一年,但我们一直保持了Go开发的步伐,并积累了很多亮点。 在去年11月,我们在庆祝Go 10周年后不久就发布和上线了go.dev和pkg.go.dev站点。 今年2月,Go...
View ArticleHashiCorp联合创始人:Go是成功且无悔的选择
提到HashiCorp这个公司,可能很多人都没听说过。但提到vagrant、consul、nomad、terraform或者vault,那么你一定对这些工具或其中之一有所耳闻。这些工具都是HashiCorp这家公司的开源项目。...
View Article没有VPS搭建govanityurls服务?别急!你依然可以自定义Go包导入路径
我们见到的Go包的导入路径常常以github.com、bitbucket.org等代码托管站点的域名为前缀,这样的包导入路径有一个问题,那就是当Go包的托管站点发生变更时(比如从github.om迁移到bitbucket.org或gitlab.com),该包的使用者需要更新包的导入路径。当然,在支持go...
View Article“Gopher部落”知识星球开球了
考虑了很久自己要不要开一个知识星球?自己并不擅长社群运营,但 自己的技术内容输出档次又是不错的且是持续的,能让一定范围的朋友感觉是有价值的; 面对大家的问题,相信自己的知识和经验储备也能给出很具参考价值的答案; 并且这样的一个知识付费的产品还能反过来督促自己输出更多、更有价值的内容,何乐而不为! 于是鄙人下载了知识星球的app,大胆地点击了“创建星球”,“Gopher部落”这颗星球就这样诞生了!...
View Article一文搞懂Go语言中的切片排序
本文首发于“Gopher部落”知识星球! 切片是Go语言中引入的用于在大多数场合替代数组的语法元素。切片是长度可变的同类型元素序列,它不支持存储不同类型的元素,当然如果你非用sl := []interface{}{“hello”, 11, 3.14}来抬杠^_^,那就另当别论。...
View Article一文告诉你如何抢先体验Go泛型
本文首发于我主持的“Gopher部落”知识星球,欢迎大家加入星球,一起学习Go语言!年底前8.8折优惠,不要错过哦! 2020年11月22日,Go核心开发团队技术负责人Russ Cox在golang-dev论坛上确认了Go泛型将在Go 1.18落地(2022.2):...
View ArticleGo是编程语言世界的“特斯拉”
Go技术专栏“改善Go语⾔编程质量的50个有效实践”正在慕课网火热热销中!本专栏主要满足广大gopher关于Go语言进阶的需求,围绕如何写出地道且高质量Go代码给出50条有效实践建议,上线后收到一致好评!78元简直就是白菜价,简直就是白piao! 欢迎大家订阅! 本文翻译自《GO — The TESLA Of Programming World》 –...
View Articlevendor目录是否需要提交到代码库中?答案全在这一篇
如果您还在使用vendor机制管理依赖包,那么说明您肯定是处于下面两种情况之一! 还工作在传统的GOPATH模式下(使用Go 1.10及之前版本;或Go 1.11及之后版本,但GO111MODULE=off),利用vendor管理目标包的特定依赖; 工作在go module模式下,但仍然利用vendor管理目标module的特定依赖并使用go build -mod=vendor来构建。...
View ArticleGo函数调用链跟踪的一种实现思路
这篇文章的初衷是想解答知乎上的一位知友提出的问题。没想到完成一种实现后,这个问题居然被删除了。那么既然实现了,就分享出来吧。问题的原文找不到了,问题大致是这样的: 一个程序中存在多个函数调用链都调用了函数D: A1 -> B1 > C1 -> D A2 -> B2 > C2 -> D A3 -> B3 -> C3 -> D ... ......
View ArticleGo 1.16新功能特性不完全前瞻
2020年最后一个购物狂欢,双十二购物节“Gopher部落”知识星球推出双十二优惠!本年度最低折扣仅限今天一天。笔者建立“Gopher部落”旨在建立一个高质量的Go语言技术精品社区,持续不断的高质量技术资料分享,让加入的星友每天都有新收获!欢迎大家加入! Go 1.16将于2021年2月发布。目前已经进入freeze状态,即不再接受新feature,仅fix bug、编写文档和接受安全更新等。...
View Article如何查看历史版本的Go文档?嘘!答案我只告诉你!
Go语言自开源至今已经11个年头了!截至本文发稿时,目前最新的Go版本为1.15,Go核心开发团队正紧锣密鼓的进行着Go 1.16版本的开发(现阶段主要是修复bug),该版本将在2021年2月份正式发布。 Go以“自带电池(battery...
View Article一文告诉你神奇的Go内建函数源码在哪里
Go内建函数源码,我好像在哪里见过你。 – 佚名 1. 何为Go内建函数 众所周知,Go是最简单的主流编程语言之一,截至Go 1.15版本,Go语言的关键字的规模依旧保持在25个:...
View ArticleGo语言对ARM架构的支持与未来[译]
本文翻译自Go官方博客文章《Go on ARM and Beyond》(https://blog.golang.org/ports)。 最近业界关于非x86处理器的讨论沸沸扬扬,所以我们认为值得简单的写一篇关于Go语言对这些非x86处理器的支持情况的文章。...
View ArticleGo语言有哪些“劣势”
本文源于笔者对知乎上的一个问题“Go有哪些劣势?”(https://www.zhihu.com/question/300163211)的一次回答(https://www.zhihu.com/question/300163211/answer/1632229924)。当时随手花几分钟在手机上写了一些点。但事后我觉得应该再做一些系统地思考。在这里我就将更系统地思考后的答案整理并分享给大家。...
View ArticleBPF和Go:在Linux中内省的现代方式[译]
本文翻译自马可·凯瓦克(Marko Kevac)的《BPF and Go: Modern forms of introspection in Linux》(https://medium.com/bumble-tech/bpf-and-go-modern-forms-of-introspection-in-linux-6b9802682223)。...
View Article如何作废一个已发布的Go module版本,我来告诉你!
Go语言自诞生以来,一路走到今天已经经历了11个年头了。其包依赖管理机制也从无到有,从vendor演化成了如今的Go module。Go module从Go 1.11进入gopher们视野,到目前的Go 1.15,其改进和优化一直在持续。在即将到来的Go 1.16中,Go module将成为默认包依赖管理模式(即默认GO111MODULE=on)。但即便如此,我们在进行go...
View Article2020年Go语言盘点:新冠大流行阻挡不了Go演进的步伐
2020,这一六十年一遇的庚子年的确“名不虚传”。在这一年发生了很多事,而最受瞩目的事情莫过于新冠疫情的全球大流行。疫情给全球的经济带来了近似毁灭性的打击,给人们的生命带来了极大威胁,给人们的生活也带来了很大痛苦及不确定性。好在这个糟糕的2020年马上就要过去了!相信此时此刻每个人心中都会有一句呐喊:“2020,快滚吧!”。...
View ArticleHugo作者、Go核心开发团队成员谈诞生13年的Go语言:生态系统、演化与未来[译]
本文翻译自《Go Language at 13 Years: Ecosystem, Evolution, and Future in Conversation with Steve Francia》。 译注:Go开源于2009年,如果从那时算起,Go才11岁;但在Go核心开发团队眼中,Go的真正诞生年份是2007年,至今13个年头了。关于Go的演化简史可以参见我的专栏文章:《Go语言的前生今世》。...
View ArticleGo语言很无聊…其实它妙不可言![译]
无聊是一种很奇妙的状态,它可以稀释掉人类的一切情感。- 《古董局中局》马伯庸 在GopherCon 2020技术大会上(线上虚拟大会),Jon Bodner为全球gopher们做了主题为“Go Is Boring”的精彩演讲(关注公众号iamtonybai,发送gophercon2020即可得到GopherCon 2020技术大会幻灯片资料)。 其实早在2020年6月,Jon...
View Article