修正Go内存模型官方文档中的错误

写在前面

二零一九年(2019)利用业余的时间做了一套《原汁原味Go语言学习》的视频课程,主要涉及到 Go 官方的几个文档资料的学习。在翻译官方文档的过程中发现有一处错误(前前后后看了很多遍,每次看到都觉得不爽),调研后发现是 Go 源码仓库中的文档,于是心血来潮修正错误并提交了 commit,私心里还琢磨着如果代码被合并自己以后岂不就可以吹嘘是Go语言源码的贡献者了?

按照官方指引,春节放假前提交修正并得到管理员的正反馈,然后一直关注了好久但不见代码被合并,一度以为自己的这个提交被忽略了,不过最近看到已经被合并到了Go主分支。开心😸。

其实整个提交过程还是比较流畅的,现在简单总结记录一下供自己以及他人参考。

为 Go 语言源码仓库贡献代码

我们往往忽略了官方材料的学习

由于每个人学习编程的方式不同,可能无法评估出编程的最佳学习方式;但是作为熟练程度的基准,语言的官方文档理应是其最佳的学习资料。以 Go 语言为例,可能市面上存在很多 Go 语言相关的书籍,但是任何一本书都无法让自己精通 Go 语言编程(如果有类似标榜的书籍,千万不要买);从这个角度讲,书籍只能作为编程语言学习的指引者——激起学习者的学习热情,启发学习者的学习路径——其他的技术细节和技巧仍然需要学习者自己去探索体会。

不过虽说编程语言的官方文档是最佳的学习资料,但是官方文档往往是枯燥无趣的,因此也难怪很多人都不喜欢读。可是,编程语言的学习与掌握本就是一个枯燥无趣的过程,又有什么办法……

如何为 Go 语言源码仓库贡献代码

只需参考 《Contribution Guide 官方文档》即可。

大家可以看到整个文档都是英文资料,且在提交代码让别人审核的过程中也都是英文沟通交流,因此这里关键的点或许是把英文学好……

从我个人的经验看,只要英文够好,确实发现了源码中不合理的地方,又觉得自己有好点子,都可以为 Go 语言贡献代码。为了破除大家对提交代码这件事情的神秘感,这里简单罗列一下官方文档里介绍的几个点:

  1. 首先准备好账户并签署贡献者协议(Google账户、Gerrit账户);
  2. 配置自己本地的环境(配置 git、配置 gerrit,后者是谷歌官方提供的一个小工具,可以保持自己的 commit 信息的规范);
  3. 修改完代码后就可以使用 gerrit 提交了;
  4. 提交完成后到 https://go.googlesource.com/ 可以观察进度,甚至可能需要根据修改意见进行内容上的阐述、修改等;
  5. 等提交的内容被完全认同以后,剩下的就是耐心等着被合并到 Master 主分支了。

小结

自己的代码被合并到主仓库,好像这份开心慢慢地也消散了。终于还是要踏踏实实地解决业务问题,如此自己的创造才是有价值的。