我的Go语言学习经历
学习经历
2020时间过的很快,在这一年里,无论是工作,学习还是家庭都发生了很大的变化,今天在这里介绍一下我go语言的学习路线
基本语法
学习任何一门语言,最基础的就是语法了,语法没得说的,但是相对于其它的老式编程语言还是有点差距的,推荐连接:
web框架学习
作为一名web开发者,学习web框架是有必要的,在这里我深入研究了Gin和Beego,包括它们的使用和设计,其实源代码并不复杂,
这2个框架都只是在go http库上面套个壳而已,没啥难的,一天即看完所有的源代码,源代码不是重点,重点是他们的设计思路
http2协议
作为http协议的后继者http2,真可谓是进行了大大阔斧的改革,学习http2,主要是为了学子GRPC,因为GRPC基于http2进行开发,我觉得所有的go开发人员都应该学习下http2协议,
看一下它是如何设计出来的,下面列出http2的retf地址:
至于HTTP2 的go实现,你应该看看go的官方包:
GRPC
GRPC是啥,这里就不多说了,搞Go开发,不知道这个咋行呢?它的东家是Google,用法嘛,没啥难的,如果你有兴趣的话,可以看看Google的GRPC实现,
源代码并不复杂,学习它主要是为了理解它的设计,以便用于自己以后多的开发
微服务
我学习的是go-mirco,其实也主要是学习它的设计思路,框架本身没啥难的,相对于etcd来说,就是小意思了,地址:
RAFT 分布式协议
RAFT是一种分布式一致性协议,最初是为了易于理解和工程实践而设计的,如果你要精通分布式开发的话,RAFT是你绕不过去的拦路虎,首先你要理解什么是RAFT,那么请你看它的论文,下面是斯坦福大学多的论文地址:
In Search of an Understandable Consensus Algorithm
RAFT 协议实现
光看论文的,理解还是不够深刻的,我建议你看看RAFT的go实现,给大家推荐几个github地址:
hashicorp 没听说不要紧,你总听说过consul吧,consul就是这个公司开发的,牛逼不需要解释,如果你想要知道这个库怎么用的话,没关系,有人给你写了个例子:
这哥们的作者也是个Google程序员,看他的github主页,就觉得有点牛逼!
除了上面所说的Raft实现外,还有一个重量级的实现,现在业界广泛使用的就是etcd-raft,它是etcd的一个模块:
大型分布式软件开发
光搞web有啥意思?咱得来点儿有点难度的东西,大型分布式软件开发才是程序员的终极目标啊,在这里我给大家推荐业界广泛使用的分布式键值存储软件etcd,叼的不行,不服不行,链接如下:
etcd
etcd的源代码写的很复杂,读起来不是那么容易,因为我也是搞了一个多月,才算是完全搞明白了呀,在这里给大家推荐一本辅助书籍《etcd技术内幕》,相信你看完的那天,终会有所成
学习寄语
我始终相信,做难事,终有所得,学习没啥大的技巧,唯有坚持才是制胜法宝,还是那句话:
山重水复疑无路,聊暗花明又一村
本作品采用《CC 协议》,转载必须注明作者和本文链接
大佬 🧍♂️
我去 我最近也在看etcd 看etcd之前必须去熟悉Raft.
remark下 :+1:
强烈建议文章分类改到go社区,不然很快就会淹没了
itshardjs 提示不存在
牛逼啊 大佬
英语差 怎么办 哈哈
一天看完 gin 源码 :flushed:,神速啊,建议搞一篇源码走读教程,how to read a repository
顶起来 :+1:
膜拜
学习中
:+1:指明了学习路线,好评
mark 下,按这个学了
mark
golang学习交流加上面那个群吧 :blush:
👍 赞
太强了
666
这大兄弟中文这么好,表达的很地道啊
大佬果然是大佬啊,膜拜,一路走来一路坎坷,就是源代码都是没啥难的,哈哈