Go语言学习笔记:学习资料汇总

最近难得放假,想好好学习一下Go,毕竟C++用的我欲仙欲死,而平时比较常用的.NetCore也不是编译语言(Compiled Language),经常遇到一些神奇的限制……

学一门新语言说容易也容易,毕竟语法也就那么一些,而且Go非常精简,只有仅仅25个保留字,但是说难也难,要真正理解一门语言真的需要花费不少的心思,特别我属于那种不了解到一定程度连用都不敢用的人(在工作中经常因为需要使用一些库,就把这些库的实现通读一遍……),于是查找了不少的学习资料。我觉得这些资料对于新手上路真的非常有用,所以把他们都记录在这,希望也会对其他对Go感兴趣的朋友有所帮助。

那就让我们开始吧!
Gopher

1. 基础入门

首先,我们先从最基础的开始:

  • 弄明白怎么使用是第一步,官方的示例讲解必不可少:A Tour of Go
  • 接下来,可以系统的看看Go语言的方方面面,Go语言圣经gopl当仁不让:gopl.io,而且还有中文版
  • 在了解了Go语言本身之后,我们还可以看看语言的一些最佳实践,官方的Effective Go绝对值得一读:https://golang.org/doc/effective_go.html

至此,基础入门肯定是没有问题了,但是如果你是从C/C++这种比较传统的编译语言转过来的,估计到这里会一头雾水 —— 语法我都懂了,但是为什么呢?比如,为什么Go的struct成员变量和函数不提供const修饰?为什么没有信号量?使用嵌入代替继承看着很好,但是多态用起来经常却经常踩坑?这些问题我们就需要更多的资料来帮忙了。

2. Go语言之禅

Python一样,Go在设计的时候也有自己的哲学思想。但是与Python不同,Python的哲学在语言设计非常早期就提了出来,并尝试着围绕它来建立语言,Go虽然有很多贯彻始终的思想,但是却很少有非常好的总结,而偏偏理解语言的设计理念是真正理解一门语言的关键。这里有一些零散的资料和文章,都是宝藏,可以参考学习:

这里还有一些语言设计思想相关的扩展阅读:

3. 异步编程与并发模式

Go里面大家最关心的功能之一(或许没有之一),就是异步和并发了,所以这里我们先来看看他们:

4. 代码风格

还有一些和包管理相关的内容:

5. 错误处理

6. 语言和设计模式

7. 调试相关

8. 编译和Runtime

9. 最后

目前大概就看了这些资料,毕竟是一个新手,只是利用业余时间学习学习,可能不会涉及太多非常深入的内容。如果大家有更多的推荐,欢迎多多交流,共同学习进步~


同系列文章:
原创文章,转载请标明出处:Soul Orbit
本文链接地址:Go语言学习笔记:学习资料汇总