我的Go语言学习经历

学习经历

2020时间过的很快,在这一年里,无论是工作,学习还是家庭都发生了很大的变化,今天在这里介绍一下我go语言的学习路线

基本语法

学习任何一门语言,最基础的就是语法了,语法没得说的,但是相对于其它的老式编程语言还是有点差距的,推荐连接:

菜鸟教程

官方文档

web框架学习

作为一名web开发者,学习web框架是有必要的,在这里我深入研究了Gin和Beego,包括它们的使用和设计,其实源代码并不复杂,
这2个框架都只是在go http库上面套个壳而已,没啥难的,一天即看完所有的源代码,源代码不是重点,重点是他们的设计思路

Beego官方链接

Gin官方链接

http2协议

作为http协议的后继者http2,真可谓是进行了大大阔斧的改革,学习http2,主要是为了学子GRPC,因为GRPC基于http2进行开发,我觉得所有的go开发人员都应该学习下http2协议,
看一下它是如何设计出来的,下面列出http2的retf地址:

HTTP2 RETF 文档

至于HTTP2 的go实现,你应该看看go的官方包:

HTTP2 官方实现

GRPC

GRPC是啥,这里就不多说了,搞Go开发,不知道这个咋行呢?它的东家是Google,用法嘛,没啥难的,如果你有兴趣的话,可以看看Google的GRPC实现,

Go GRPC实现

源代码并不复杂,学习它主要是为了理解它的设计,以便用于自己以后多的开发

微服务

我学习的是go-mirco,其实也主要是学习它的设计思路,框架本身没啥难的,相对于etcd来说,就是小意思了,地址:

go-micro

RAFT 分布式协议

我的Go语言学习经历

RAFT是一种分布式一致性协议,最初是为了易于理解和工程实践而设计的,如果你要精通分布式开发的话,RAFT是你绕不过去的拦路虎,首先你要理解什么是RAFT,那么请你看它的论文,下面是斯坦福大学多的论文地址:

In Search of an Understandable Consensus Algorithm

RAFT 协议实现

光看论文的,理解还是不够深刻的,我建议你看看RAFT的go实现,给大家推荐几个github地址:

hashicorp 的raft实现

hashicorp 没听说不要紧,你总听说过consul吧,consul就是这个公司开发的,牛逼不需要解释,如果你想要知道这个库怎么用的话,没关系,有人给你写了个例子:

hashicorp 的raft实现的用法

这哥们的作者也是个Google程序员,看他的github主页,就觉得有点牛逼!

除了上面所说的Raft实现外,还有一个重量级的实现,现在业界广泛使用的就是etcd-raft,它是etcd的一个模块:

etcd-raft

大型分布式软件开发

我的Go语言学习经历

光搞web有啥意思?咱得来点儿有点难度的东西,大型分布式软件开发才是程序员的终极目标啊,在这里我给大家推荐业界广泛使用的分布式键值存储软件etcd,叼的不行,不服不行,链接如下:

etcd
etcd的源代码写的很复杂,读起来不是那么容易,因为我也是搞了一个多月,才算是完全搞明白了呀,在这里给大家推荐一本辅助书籍《etcd技术内幕》,相信你看完的那天,终会有所成

学习寄语

我始终相信,做难事,终有所得,学习没啥大的技巧,唯有坚持才是制胜法宝,还是那句话:

山重水复疑无路,聊暗花明又一村

本作品采用《CC 协议》,转载必须注明作者和本文链接
如果有不懂的地方,可以加我的qq:1174332406,或者是微信:TogetherForeverJS
本帖由系统于 3个月前 自动加精
Dennis_Ritchie
讨论数量: 16

我去 我最近也在看etcd 看etcd之前必须去熟悉Raft.

3个月前 评论
Dennis_Ritchie (楼主) 3个月前

remark下 :+1:

3个月前 评论

强烈建议文章分类改到go社区,不然很快就会淹没了

2个月前 评论

itshardjs 提示不存在

2个月前 评论
Dennis_Ritchie (楼主) 2个月前
面试权威指南 (作者) 2个月前

牛逼啊 大佬

2个月前 评论

英语差 怎么办 哈哈

2个月前 评论
Dennis_Ritchie (楼主) 2个月前

一天看完 gin 源码 :flushed:,神速啊,建议搞一篇源码走读教程,how to read a repository

2个月前 评论
Dennis_Ritchie (楼主) 2个月前

顶起来 :+1:

1个月前 评论

学习中

1个月前 评论

:+1:指明了学习路线,好评

4周前 评论
thomas-fan

mark 下,按这个学了

2周前 评论
Dennis_Ritchie

golang学习交流加上面那个群吧 :blush:

2周前 评论
bitqiu

👍 赞

2周前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!