Go 为什么选择 Gopher 作为吉祥物?

大家好,我是 polarisxu。 Go 语言的诞生,伴随着出现了 Gopher。现在 Go 爱好者通常自称为 Gopher。实际上,Gopher 最开始只是表示 Go 的吉祥物: 那 Gopher 这个吉祥物前世今生为何?据说,有些人学 Go 是因为 Gopher 这个吉祥物~ 大约在 1999 年(远早于 Go 的诞生日)—— gopher 第一次出现在新泽西州的 WFMU radio station ,作为广播电台的宣传物。当时,Renée French 被委托为年度筹款活动设计一件 T 恤,结

本地如何配置多个 GitHub/Gitee 账号?

大家好,我是 polarisxu。 现在的开发,无论是日常工作还是参与开源,都离不开 Git。开源项目,大家通常使用 GitHub 或 Gitee,而工作中通常会自建 Git 服务,比如通过 GitLab、Gogs 等搭建。 为了方便使用,一般大家会配置 SSH keys,通过 ssh 协议 pull/push 仓库。 1、生成 ssh 密钥 首先,我们需要生成 ssh 密钥:(基于 mac,linux 类似,Windows 下找对应工具) ssh-keygen -C "polaris@studygolang.com" Generating public/private rsa key

为 Java 开发者准备的 Go 教程 02:Java 有而 Go 无

大家好,我是 polarisxu。 Go 语言的设计是站在巨人的肩膀上的,它吸取了其他语言的优秀设计,同时摒弃了一些「不认可」的设计。同时,为了保持简单性,Go 的特性也比很多其他语言少。因此,Java 有一些特性,Go 没有。但没有,不代表不好。本文就看看具体有哪些。(当然,也存在 Go 有的特性,而 Java 没有) 1、多重赋值 Java 可以在一条语句中将同一个值分配给多个变量(很多 C 族语言

GitHub 发现了 studygolang 项目依赖的漏洞

大家好,我是 polarisxu。 今天打开 studygolang 项目的 GitHub 仓库主页,发现了一个醒目的提示: 即发现了潜在的安全漏洞。 之所以 GitHub 能够发现这个安全漏洞,前提是我之前进行了授权。之前我写过一篇文章:《重磅!GitHub 为 Go 社区带来安全支持》 ,没看过的可以看看。 查看 「Dependabot alerts」,发现是 tidwall/gjson 有漏洞: 点击可以查看该漏洞的详细信息: 所以,修复该问题很简单,在 studygolang 项

Typora 宣布收费后,这款开源 Markdown 编辑器火了

大家好,我是 polarisxu。 这几年,Markdown 写作不要太流行,包括一些社区也基本支持 Markdown 格式,包括 Go 语言中文网。GitHub 的评论也是支持 Markdown 格式,因此 Markdown 是每个程序员都应该掌握的。如果你从来没有使用过 Markdown,现在是时候尝试使用了。 Markdown 是一种纯文本格式,用来撰写结构化文档。由 John Gruber 在 2004 年创造。他用 perl 实现了第一个 Markdown 到 HTML 的转换器,迅速地在网络上普及开来

为 Java 开发者准备的 Go 教程 01:漫游了

大家好,我是 polarisxu。 在正式工作之前,一直使用 Java,虽然这些年对 Java 的关注变少了,但很显然,Java 用户群体特别大。不过,我也知晓,有不少 Java 用户在学 Go。我尝试写一系列文章,为 Java 开发者讲解 Go 语言。 这是第一篇,从大的层面简单对比下 Go 和 Java,算作是一次漫游。 整体上,Java 和 Go 之间有许多明显而微妙的区别,包括语言层面和运行时层面。我们这里主要在语

我的 2021 年终总结

大家好,我是 polarisxu。 元旦假期结束,2022 年工作开启,2021 年总结做了吗?今天我简单回顾下我的 2021。 年终总结,是对我自己的一个回顾,但发出来,我希望能够对大家有点帮助或启发。 这份总结主要会聊五个方面的内容: 写作 读书 理财 家庭 收获 01 写作 这里主要谈我的个人品牌公众号 「polarisxu」,而不是 「Go语言中文网」,Go语言中文网的年终总结见:Go

泛型版 singleflight:Go 中如何防止缓存击穿?

大家好,我是 polarisxu。 并发是 Go 的优势,但并发也需要很好的进行控制。标准库中有 sync 包,经常使用的功能有 sync.Mutex、sync.WaitGroup 等。其实,除了标准库,还有一个官方的扩展库,也叫 sync,其中有一个子包:sync/singleflight,专门做并发控制,比如防止缓存击穿。 01 从例子说起 看一个模拟缓存的例子,有如下代码: package main import ( "errors" "flag"

2021 年你写了多少代码?这个 Go 工具帮你统计

大家好,我是 polarisxu。 2021 年马上要过完了,一年下来,你写了多少代码?其中 Go 代码又有多少呢?虽然大家一般讨厌将代码行数作为考核业绩指标,但我们自己对一年的代码量有一个基本掌握还是挺有必要的。 如果你搜索,会发现代码统计工具有很多。比如 sloccount 、github.com/AlDanial/cloc 等,似乎大家很喜欢统计代码行数。当然,也有人直接使用 grep、awk 之

掌握泛型:GopherCon2021 上的泛型演讲主题

大家好,我是 polarisxu。 2021 年 12 月初,GopherCon2021 举办,Robert Griesemer 和 Ian Lance Taylor 做了关于泛型的主题演讲。 https://www.youtube.com/watch?v=Pa_e9EeCdy8&list=RDCMUCx9QVEApa5BKLw9r8cnOFEA&index=1