Go语言编程技巧和参与开源项目

Go语言编程技巧 一个翻译项目, 主要翻译Phuong Le的 Golang Tips系列。
翻译后的网站是: https://colobu.com/gotips/

项目背景

如果一个人能分享一条关于Go语言的技巧,那是非常有意思的一件事情。
如果一个人能分享十条关于Go语言的技巧,那是非常有心值得大家称赞的事情。
如果一个人能分享一百条关于Go语言的技巧,那是值得大家顶礼膜拜的事情。
实际上,这需要相当大的毅力坚持下来,不少人可能写了一二十条就半途而废了。如果持续输出高质量的编程技巧,说明作者工作中非常有心做总结,作者也有丰富的Go编程经验,才能持续高质量的输出。

Phuong Le已经坚持写了78条Go编程技巧了,而且还在持续输出,非常的赞。

我也征得了Phuong Le的同意,将这些技巧翻译成中文,方便更多的人学习Go语言的技巧,了解Go语言的陷阱。

当然,Phuong Le也希望能够以项目仓库的方式来翻译这些技巧。

我在githun上创建了一个仓库: github.com/smallnest/gotips, 用于翻译Phuong Le的Go编程技巧。

因为有70条的条目,翻译起来也需要花一些时间,我也希望有更多的人参与进来,一起翻译这些技巧。在熊厂内部也有很多Go语言的爱好者,大家也希望能够参与进来,厂外的朋友也可以参与进来。

因为Phuong Le的Golang tips系列每一个技巧都是独立的,而且每一个都是简短的几句话或者几段话,再加上几张代码图片,所以翻译起来也比较容易,也非常适合大家翻译。

目前翻译进度是 45%, 也欢迎大家积极参与进来,按照这个速度,五一之后很快就可以翻译完了。

为大家协作做的一些工作

为了方便大家参与到翻译项目,我做了一些工作,让大家可以更容易的参与进来。

制定翻译规则

  1. 设置项目布局,基于mdbook的方式进行管理
  2. 每一个tip一个markdown文件,内容格式保持统一
  3. 参与者首先创建issue,说明要翻译的tip,然后fork项目,翻译完成后提交PR
  4. 允许先进行机翻,但是一定要经过人工润色,保证翻译质量
  5. 认领一个星期未提交或者修改的tip,将会被关闭,无论多么接近完成状态

同时设置了github actions,合并后自动进行编译发布,第一时间可以在 http://colobu.com/gotips/ 看到最新的翻译。

为了鼓励大家的积极性,我还配置贡献者插件,将贡献者的图标加入到README中。 翻译最后我还准备制作一个翻译数量的统计。

为什么要参与开源项目

本来在上星期的QCON大会,我准备分享一些关于开源项目的心得,但是因为时间关系,没有分享出来。我也想借这个开源项目,和大家聊一聊为什么我们要参与开源项目,尤其是对那些还未参加过开源项目的同学。

我总是想提供一些参与开源项目的机会给身边的同学,但是我从不苦口婆心的规劝同学到开源项目中来。因为我觉得自有主动的人才能真正的享受到开源项目的乐趣,也能真正的从中受益。

参与开源项目,可以让开发者接触到更广阔的技术领域和更先进的技术理念。

通过参与开源社区,开发者可以与全球的技术同行进行交流和合作,共享知识和经验,不断提升自己的技术水平。这种交流和合作不仅能够拓宽开发者的视野,还能够激发创新思维,推动技术的进步和发展。
我曾经对Go并发库中的Once实现有疑问, Ian Taylor当天就在论坛上回答了我的问题,这种能得到大牛的指导是非常难得的,无论你是参与到Go、Linux、Redis等知名的项目,还是一些小众的软件中,都有可能得到一些业界大牛和经验丰富开发者的知道、帮助和讨论。
参与开源项目,也也能够得到技术的提升,比如你参与翻译这个Golang Tips系列,肯定会比你自己看一本Go语言的书籍要更深入的了解Go语言的一些细节和陷阱。

参与开源项目,还可以提高开发者的编程能力和解决问题的能力。

参与开源项目能够提升开发者的个人影响力和知名度。

比如Go生态圈,你极有可能通过Go的贡献者名单,了解到一些赫赫有名的Go技术大牛。如果你在Go的项目中有过贡献,你的名字也会出现在贡献者名单中,这对于你的个人影响力和知名度是非常有帮助的。
在开源社区中,优秀的贡献者往往会受到广泛的认可和赞誉,这对于开发者个人职业发展来说是非常有利的。通过参与开源项目,开发者可以展示自己的技术实力和团队协作能力,吸引更多的关注和机会。
大部分的招聘者在看到你在github上的贡献之后,印象分会更好,你的简历也会更有竞争力。

参与开源项目还能够培养开发者的责任心和使命感。

开源项目往往承载着社区成员的共同愿景和使命,参与其中需要承担一定的责任和义务。通过履行这些责任和义务,开发者可以培养自己的责任心和使命感,为社区的发展贡献自己的力量。
比如你认领了一个工作,如果你积极的去完成,你会感到一种责任感,你会感到一种使命感,你会感到一种成就感,大家也会对你的贡献表示感谢。
如果你认领了一个工作,拖拖拉拉,最后没有完成,大家会对你感到失望,你自己也会缺乏这种责任感。

参与开源项目还能够拓展开发者的人脉和社交圈。

通过参与开源项目,开发者可以结识更多的技术同行和志同道合的朋友,建立起更广泛的人脉和社交圈。这些人脉和社交圈不仅能够为开发者提供技术支持和资源共享,还能够为开发者提供更多的机会和发展空间。