Go 语言名人:除了 Rob Pike,很多人可能不知道他

大家好,我是站长 polarisxu。 今天和大家聊聊 Go 语言名人的那些事。 01 说起 Go 语言,很多人知晓有三个创始人。在 2007 年 09 月 25 日,Rob Pike 发了一封邮件: 所以一般认为 Rob Pike、Robert Griesemer 和 Ken Thompson 是 Go 的创始人,而很长一段时间,Rob Pike 在引领 Go 团队,同时在一些公众场合经常出现,因此大家对 Rob Piike 更熟悉。关于他们三个的情况,网上资料挺多的,这里不说了。 今天说的是另外一个人

聊聊 Go 和创业

昨天 PingCAP 完成 D 轮 2.7 亿美元融资的消息,相信很多人看到了。PingCAP 今天的成就,对开源界真是极大的鼓舞。祝贺祝贺! 01 PingCAP 成立于 2015 年,是一家企业级开源分布式数据库厂商,提供包括开源分布式数据库产品、解决方案与咨询、技术支持与培训认证服务,致力于为全球行业用户提供稳定高效、安全可靠、开放兼容的新型数据基础设施,解放企业生产力,加速企业数字化转型升级。 由 PingCAP 创立的分布式

通过这个 Runtime 统计信息可视化库学到了什么?

大家好,我是站长 polarisxu。 掌握系统运行状态,知道系统哪些地方可能存在问题,方便进行优化,这是一个实际系统必备的。裸奔,对系统一无所知,迟早是要出大事的。 在 Go 语言中,官方标准库提供了方法,让我们能够获得内存分配、GC 和 Goroutine 等情况。比如内存、GC 等情况,可以通过 runtime.MemStats 获取:https://docs.studygolang.com/pkg/runtime/#M

字节跳动面试真的也会问这样的问题?!

大家好,我是站长 polarisxu。 网上看到有人分享去字节跳动的面试 Go 的经验 ,从面试题来看,应该是比较初级的职位。 这份面试经验总结中(其实谈不上总结,只是面试题的记录,并没有总结分析答案),有一道 Go 相关的题,也是一个老生常谈的问题:以下代码有什么问题,怎么解决? total, sum := 0, 0 for i := 1; i <= 10; i++ { sum += i go func() { total += i }() } fmt.Printf("total:%d sum %d", total, sum) 01 考点一 我相信很多人应该一眼看出了其中

GitHub 出的这个功能,让开源项目有了自己的社区

大家好,我是站长 polarisxu。 为了更有利于开源项目的发展,形成自己的社区很重要,作者们可以更好地和使用者交流互动,了解他们需求、问题。虽然 GitHub 有 issue,但毕竟它主要还是用于反馈 bug、提新特性,不是一个社区的感觉。所以一般项目都会有其他的社区,比如会开通 google groups 邮件组、使用 Gitter、Discord、Slack 等。当然,国内的项目通常会使用 QQ 群、微信群

祝贺 Go 开源 11 周年

题图来自《了不起的程序员》 今天是 Go 语言开源 11 周年。有些人可能不太知道,简单回顾下 Go 的历史。 2007 年 Rob Pike, Robert Griesemer 和 Ken Thompson 一起创建了 Go 语言。从代码提交记录看,2008 年 3 月 3 日有了 Go 最初的规范 。 2009 年 11 月 10 日,Go 语言以开放源代码的方式向全球发布,当年获得了 TIOBE 年度编程语言称号; 2011 年 3 月 16 日,Go 语言的第一个稳定版本 r56 发布; 2012 年 3 月 28 日,Go 语言的第一个正式版本 Go1 发布,并承诺

客观、全面的比较 Rust 与 Go

最近一年,将 Rust 和 Go 进行比较的不少,但不少都不公正,带感情色彩。而这篇文章客观、全面的分析对比了 Rust 和 Go,让你具体项目时选择最合适的。 Rust 还是 Go,哪个更好?你应该为下一个项目选择哪种语言,为什么?两者在性能,简单性,安全性,功能,规模和并发性等方面如何比较?它们有什么共同点,并且在根本上有何不同?来自 For the Go of Love 系列图书的作者,友好而公正的比较 Rust 和 Golang。

关于 Go 语言微服务框架 Micro 的一些情况说明

用过或了解过 Micro 这个框架的人,可能有所耳闻,大家对其抱怨比较多,典型的抱怨是升级后不兼容。比如网上有教程是基于 1.x,但新版本是 2.x,完全不一样了,而且似乎官方文档也没有及时更新,使用了它的人“痛苦不堪”。 前些天,有人问我有无其他 Go 微服务框架推荐,说 Micro 3.0.0 开始不能用了!! 我听了一惊:我只听说它不稳定,总是变来变去,兼容性不好,但没听说不能用。后来了解了下,原来

除了 fmt.Errorf() 之外—Go 中的日常错误对象:CockroachDB errors 库(第4篇)

在 Go 中传递错误的惯用方式是使用预定义的类型错误。但是 Go 的标准库仅提供了非常简单的错误对象,errors.New() 和 fmt.Errorf()。 本文介绍了 CockroachDB 的 error 库(它是 Go 标准库库 errors 的直接替代品),Go 程序员如何用它来描述和传播其代码中的错误和错误代号(code)。 Go 标准库 errors 太简单 由 fmt.Errorf() 构造的 Go 中最常见的“简单”错误对象类似于带有错误接口的包含在结构中的字符串:其

从来没有这么强烈想推荐一个工具

大家好,我是站长 polarisxu。 在逛 GitHub Trending 时看到了这个项目:https://github.com/chubin/cheat.sh,因为之前我整理过一系列 cheatsheet,因此好奇的打开了这个项目。于是被它吸引了。。。 01 是什么 该项目的描述是: the only cheat sheet you need 简单一句话却很吸引人:这么强大,这一个 cheatsheet 就够了? 因为在这一份清单中,包含了几乎所有开发者常见的东西,不