golang学习资料

smallfish 发布于1年前 阅读12502次
0 条评论


本部分资料来自于知乎:http://www.zhihu.com/question/23486344


1 golang.org/doc/
主要看 A Tour of Go, How to write Go code, Effective Go
2 熟悉package, GoDoc
package : strconv, net/http, net/url, string, math, time
3 练习, project eular. 每学一门新语言的时候, 可以来做一遍.
About - Project Euler
4 语言特点:
select, channel, defer, goroutine, 静态类型(int, int64, 类型转换), 闭包, package的组织形式
5 reflect
blog.golang.org/laws-of
6 阅读开源软件的源代码, nsq, martini等.
7 使用go去做一个项目.


作者:唐生
链接:http://www.zhihu.com/question/23486344/answer/24805683
来源:知乎
著作权归作者所有,转载请联系作者获得授权。


建议你先看: go-tour-zh.appspot.com/#
逐个例子的看,慢慢的改例子,然后运行;确保自己理解教程中给出的每一行代码,以及说明文字。
然后再去看: Unknwon/the-way-to-go_ZH_CN · GitHub
然后,你就可以用go做实际项目咯~

作者:asta谢
链接:http://www.zhihu.com/question/23486344/answer/24770195
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

我觉得学习一门语言最重要的就是做到三点,第一看基础知识,第二学习抄代码,第三学习写代码

第一点,很多人都觉得上来就动手写,但是你基础的东西都没掌握,怎么写呢?欲速则不达,所以基础的东西还是必须要先掌握好.这里推荐你几个基础的入门材料:
我觉得你把这几个基础掌握之后就可以开始抄袭代码了,如果你之前有PHP的开发经验,那么也许我写的这本书对你了解golang有帮助, github.com/astaxie/buil

第二点,我们很多时候开始写代码都是没什么思路,也无从下手,但是我们可以模仿别人写代码,上海俗话里面常说"吃大户,用大户,消灭大户",我们就是"看代码,抄代码,最后自己写代码".这里给你几个入门级别的代码看看学习一下:
最后我列一下你可以自己参考去实现的一些功能,我当初培训我们战虎班的同学就是用这些来一起学习的.
  • 日志分析
  • IP库分析
  • 管理后台查看分析日志
第三点,自己写代码,这个时候就是已经对golang有了一定的了解了,那么我们就可以开始做自己的项目了,做项目最想就是快速开发,那么我就推荐你

这个阶段就是找各种东西用golang来写,多写就会理解越来越深入.



cs.cmu.edu/~dga/15-440/
这是CMU分布式系统课程,对应有四个课程项目,全部要求用go实现.项目都有完整的说明和单元测试程序.题主可以做一做


Python转到Go的,学了大概2个月, 期间写了大概2500行游戏服务器框架( Skycrab/cham · GitHub),不包含测试代码,不包含业务逻辑代码。主要是学习 github.com/cloudwu/skyn
写的,主要就是实现golang的actor模型,服务之间的消息发送,消息处理,定时器实现,广播实现,log模块,websocket实现,gate模块,debug service实现,还有一些基础库,如lru算法,300行简单的orm(curd),敏感词过滤,还有一个从 @xjdrewgithub.com/xjdrew/lua-z移植的go版本sorted set实现。所以我觉得你缺的是一个开始,开始写代码,研究代码,阅读代码,重构,反复。
你是搞php的,建议从web开始,从 @asta谢astaxie/beego · GitHub开始搞起,用beego做个小应用,先不要想如何牛逼,如何优美,先以功能实现为主。从操就业,这时一股熟悉的感觉弥漫心头,自信悄然而来,嘎嘎golang小kiss而已。注意,自信很重要,自信很重要,真的很重要,重要的话要说3遍。
自信来了,代码也写了,期间欠的债也该还了。啥,欠谁债了,你别吓我,我没钱。哈哈,当然是欠golang的债了,前期你玩了人家,很爽自信也来了,人家当然要赖着你了,yes,就是到了深入交流的时候了。这个时候你需要认真看项目中用到的标准库实现原理,框架实现原理,学习代码方式,golang的原理,可以读读 Skycrab/go-internals · GitHub。这和谈恋爱一样,深入交流你才知道,她还会这个,还能这样,哈哈,get新技能。当然这个阶段是痛苦的,切记不要一股脑一直研究,不然会把你带入深渊拔不出来。这和谈恋爱一样,你天天纠结人家七大姑八大姨的,前男友,前女友的,人家能给你好脸色才怪。


新手遇到的了50个go语言的坑: 50 Shades of Go: Traps, Gotchas, and Common Mistakes for New Golang Devs ,里面很多的坑,我也在学的过程中遇到过,避免这50个坑,可以节省编译期间的大部分时间,不说了,填坑去了
首先如果有C的基础,推荐《 Go by Example》,通篇基于代码讲解,通俗易懂,没废话。花上一个周末的时间,很快就能自己动手开始写Go代码。

之后可以看看相关创始人的博客,比如《 research!rsc: Go Data Structures: Interfaces》,加深对Go语言内部机制的理解。最好还能补一下并发的相关知识(比如自旋锁、互斥锁等等的概念),虽然不一定用得上,但知道的话日后调试代码能省不少时间。

有空的话还可以读读 The Go Programming Language Specification,我觉得这可以算是最易懂的几份Language Specification。


yinwang.org/blog-cn/201

你需要看这个《对 Go 语言的综合评价》——王垠


Go语言极速入门手册.go


学习资料推荐:
qyuhen/book · GitHub
雨痕的书写的很好。
你可以从它的第一版开始看,它包括语言基础、标准库解释。
第四版的没有基本库解释。我想他的计划是:
第五版
上册:语言基础
中册:标准库
下册:源码分析


Go Programming Blueprints - 如果你不知道拿Go来做什么

The Go Programming Language - 语言基础

Go语言编程的基础,我推荐一个:Go语言第一课

需要 登录 后回复方可回复, 如果你还没有账号你可以 注册 一个帐号。