- 《Go Web基础》 Unknwon/go-web-foundation · GitHub
- 《Go名库讲解》 Unknwon/go-rock-libraries-showcases · GitHub
主要看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
http://blog.golang.org/laws-of-reflection
6 阅读开源软件的源代码, nsq, martini等.
7 使用go去做一个项目.
作者:唐生
链接:http://www.zhihu.com/question/23486344/answer/24805683
来源:知乎
著作权归作者所有,转载请联系作者获得授权。
然后看这页里的各个链接,推荐顺序:
http://golang.org/doc/code.html
http://golang.org/doc/effective_go.html
http://golang.org/doc/faq
http://golang.org/doc/cmd
http://blog.golang.org/gos-declaration-syntax
http://blog.golang.org/go-concurrency-patterns-timing-out-and
http://talks.golang.org/2012/concurrency.slide#1
http://talks.golang.org/2013/advconc.slide#1
http://blog.golang.org/error-handling-and-go
http://blog.golang.org/gobs-of-data
http://blog.golang.org/laws-of-reflection
http://blog.golang.org/profiling-go-programs
http://blog.golang.org/c-go-cgo
包文档也要过一遍 http://golang.org/pkg/
逐个例子的看,慢慢的改例子,然后运行;确保自己理解教程中给出的每一行代码,以及说明文字。
然后再去看:Unknwon/the-way-to-go_ZH_CN · GitHub
然后,你就可以用go做实际项目咯~
链接:http://www.zhihu.com/question/23486344/answer/24770195
来源:知乎
著作权归作者所有,转载请联系作者获得授权。
第一点,很多人都觉得上来就动手写,但是你基础的东西都没掌握,怎么写呢?欲速则不达,所以基础的东西还是必须要先掌握好.这里推荐你几个基础的入门材料:
我觉得你把这几个基础掌握之后就可以开始抄袭代码了,如果你之前有PHP的开发经验,那么也许我写的这本书对你了解golang有帮助, https://github.com/astaxie/build-web-application-with-golang
第二点,我们很多时候开始写代码都是没什么思路,也无从下手,但是我们可以模仿别人写代码,上海俗话里面常说"吃大户,用大户,消灭大户",我们就是"看代码,抄代码,最后自己写代码".这里给你几个入门级别的代码看看学习一下:
- Web.go - Quickstart 很简单,就是学习他的路由怎么实现的,如何编写自己的路由
- icub3d/home 路 GitHub 这是一个Go+ AngularJS的实现,看看如何做API应用
- 日志分析
- IP库分析
- 管理后台查看分析日志
- https://github.com/astaxie/beego
使用beego框架可以很快速的开发你的Web或者API应用
- Homepage - Docker: the Linux container engine 使用docker来做虚拟化
- skynetservices/skynet · GitHub 学习分布式
- coreos/etcd · GitHub 分布式应用
这个阶段就是找各种东西用golang来写,多写就会理解越来越深入.
cs.cmu.edu/~dga/15-440/S14/index.html
这是CMU分布式系统课程,对应有四个课程项目,全部要求用go实现.项目都有完整的说明和单元测试程序.题主可以做一做
写的,主要就是实现golang的actor模型,服务之间的消息发送,消息处理,定时器实现,广播实现,log模块,websocket实现,gate模块,debug service实现,还有一些基础库,如lru算法,300行简单的orm(curd),敏感词过滤,还有一个从 @xjdrew的https://github.com/xjdrew/lua-zset移植的go版本sorted set实现。所以我觉得你缺的是一个开始,开始写代码,研究代码,阅读代码,重构,反复。
自信来了,代码也写了,期间欠的债也该还了。啥,欠谁债了,你别吓我,我没钱。哈哈,当然是欠golang的债了,前期你玩了人家,很爽自信也来了,人家当然要赖着你了,yes,就是到了深入交流的时候了。这个时候你需要认真看项目中用到的标准库实现原理,框架实现原理,学习代码方式,golang的原理,可以读读Skycrab/go-internals · GitHub。这和谈恋爱一样,深入交流你才知道,她还会这个,还能这样,哈哈,get新技能。当然这个阶段是痛苦的,切记不要一股脑一直研究,不然会把你带入深渊拔不出来。这和谈恋爱一样,你天天纠结人家七大姑八大姨的,前男友,前女友的,人家能给你好脸色才怪。
之后可以看看相关创始人的博客,比如《research!rsc: Go Data Structures: Interfaces》,加深对Go语言内部机制的理解。最好还能补一下并发的相关知识(比如自旋锁、互斥锁等等的概念),虽然不一定用得上,但知道的话日后调试代码能省不少时间。
有空的话还可以读读The Go Programming Language Specification,我觉得这可以算是最易懂的几份Language Specification。
yinwang.org/blog-cn/2014/04/18/golang/
你需要看这个《对 Go 语言的综合评价》——王垠
学习资料推荐:
qyuhen/book · GitHub
雨痕的书写的很好。
你可以从它的第一版开始看,它包括语言基础、标准库解释。
第四版的没有基本库解释。我想他的计划是:
第五版
上册:语言基础
中册:标准库
下册:源码分析
Go
Programming Blueprints - 如果你不知道拿Go来做什么
The Go Programming Language - 语言基础
Go语言编程的基础,我推荐一个:Go语言第一课
有疑问加站长微信联系(非本文作者)