编程语言应用

首页 » 常识 » 诊断 » 适合Go新手学习的开源项目在GitH
TUhjnbcbe - 2023/7/28 21:43:00
肚子上白癜风 http://pf.39.net/bdfyy/bdfjc/171227/5962246.html

作者:HelloGitHub-小鱼干卤蛋

故事要从年说起。因为受够了C++煎熬的Google首席软件工程师RobPike召集RobertGriesemer和KenThompson两位牛人,决定创造一种新语言来取代C++,这就是Go的由来。

在年11月10日Google正式发行Go这一编程语言。Go从C语言继承了相似的表达式语法、控制流结构、基础数据类型、调用参数传值、指针等很多思想,还有C语言一直所看中的编译后机器码的运行效率以及和现有操作系统的无缝适配。

经过十多年的发展,截止北京时间:年11月17日定稿时Go的最新版本已经到了1.15.5。同时国外的Twitter、Google、Netflix等大厂和国内的字节跳动、腾讯、B站等公司都在用Go开发他们的主要业务,诸如PingCAP这一新兴NewSQL数据库厂商的主产品TiDB更是使用Go进行开发,并成为了GitHub上知名的Go语言开源项目。可见Go在互联网公司的开发地位日渐重要,在开源社区也十分活跃。

那这个时候新手“上车”晚不晚?GitHub上面有什么好玩、入门级的Go语言项目?

这里是HelloGitHub的《GitHub上适合新手的开源项目》系列,共计5篇文章:

C++篇Python篇Go篇Java篇JavaScript篇本期是Go篇,下文的开源项目选自HelloGitHub往期月刊。正如Go语言之父的RobPike所说的Lessismoreorlessisless,本文也本着这一原则:大道至简。下面的每一个Go语言开源项目都能独当一面,成为新手的学习项目而且合在一起可以为你提供更为全面的Go认知——1+12。

Talkingischeap,LetsGo

PartOne:师父领进门

1.1真正的入门指南:the-way-to-go_ZH_CN

《Go入门指南》这本开源书籍是一位Golang的布道者(无闻)苦于当时国内没有比较好的Go语言书籍,而着手翻译的一本国外书籍《TheWaytoGo》。该书通过对官方的在线文档、名人博客、书籍、相关文章以及演讲的资料收集和整理,并结合我自身在软件工程、编程语言和数据库开发的授课经验,将这些零碎的知识点组织成系统化的概念和技术分类来进行讲解。

该书将从最基础的概念讲起,同时也会讨论一些类似在应用goroutine和channel时有多少种不同的模式,如何在Go语言中使用谷歌API,如何操作内存,如何在Go语言中进行程序测试和如何使用模板来开发Web应用这些高级概念和技巧。

1.2从零开始学GoWeb编程:build-web-application-with-golang

《GoWeb编程》这本开源书籍,从零开始手把手教你Go的环境安装和配置、基本语法再到GoWeb开发的方方面面。可谓是一书在手,“天下”(GoWeb)任我行。当然书写得再好,也是“师傅领进门,修行靠个人啊!“

PartTwo:再上一层楼

2.1七天用Go从零实现系列:7days-golang

用Go分别写一个:Web框架、分布式缓存、ORM框架、RPC框架的实战教程。有些东西看懂了,不一定会用,会用了也不一定能自己搞出来。所以从零写一个框架,了解其中的细节,才能算上真正懂了吧。

2.2Go学习之路:golang-developer-roadmap

《Go开发者路线图》是一个成为Go开发的学习路线。一图胜千言,这里选取这个项目是为了让大家能快速了解Go所需学习的知识点和前进的方向。

2.3Go高级编程:advanced-go-programming-book

《Go语言高级编程》作为针对有一定Go基础的进阶书籍,内容涵盖并发、GOC编程、Go汇编语言、RPC实现、Web框架实现、分布式系统等高阶主题。该书的附录也是一大亮点,收录了Go有趣的代码片段、Go常见坑。要想Golang玩得溜,得在Go高级编程下功夫[手动狗头]

PartThree:是时候展示真正的技术了

3.1星图:starcharts

这个项目是通过可视化的方式展示GitHub上star的增长曲线,也就生成是“星图”。推荐这个项目主要是运行简单和直观的数据可视化,可以快速地感受到Go开源项目带来的便利。我第一次玩这个项目的时候不会Go语言,但是参考这个项目写一个Python版本的星图,所以我想已经入门Go的各位肯定也能看懂。

有的小伙伴可能会说我没有开源项目、我的项目都没有star我学这个项目没用,我想了下确实是缺少些动力。如果抛开GitHub的star元素,还有一个适用更多场景的Go数据可视化项目:go-echarts。来吧,感受下数据的律动。

3.2来Chat下:gochat

gochat是纯Go实现的轻量级即时通讯系统。技术上各层之间通过RPC通讯,使用Redis作为消息存储与投递的载体,相对Kafka操作起来更加方便快捷。各层之间基于etcd服务发现,在扩容部署时将会方便很多。架构、目录结构清晰,文档详细。而且还提供了Docker一键构建,安装运行都十分方便。

3.3给!拿去用:annie

Go编写的下载快速、使用简单、程序纯净的视频下载工具。支持哔哩哔哩、YouTube等视频网。可作为前段时间被封禁:youtube-dl的替代品(目前已重新上架),它真的很强大!先感受下annie带来的便利,可能就有兴趣去探究它的源码啦。

$annie-ccookies.txtxxxx:xxxx高清P60Size:.65MiB(Bytes)#downloadwith:annie-fdefaultURL16.03MiB/.65MiB[==----------------------------]7.26%9.65MiB/s19s最后

推荐几个GitHub上的大佬:

astaxie:谢大unknwon:无闻polaris:polarisxu,Go语言中文站长appleboy、chai为什么没写人物介绍?我只是一个小小的follower,了解的只是他们GitHub上的项目,其它的我都是道听途说,所以不能乱写。当然还有很多在GitHub贡献巨大的大佬们,没写到的不要打我!

1
查看完整版本: 适合Go新手学习的开源项目在GitH