go书单

1.代码规范

https://github.com/golang/go/wiki/CodeReviewComments

2.基础知识

先看:

https://github.com/mikeluwen/build-web-application-with-golang/blob/master/zh/preface.md

参考官方文档:

https://go-zh.org/doc/

然后做练习

https://tour.go-zh.org/welcome/2

作者:飞雪无情
链接:https://www.zhihu.com/question/30461290/answer/210414739
来源:知乎

学习任何一门语言,都要学习好基础,把基础打牢,那些框架对你来说都是工具,你自己的基础好,懂得了他们的原理,自己就可以创造更优秀的框架。

基础推荐官方文档,没有什么比这个更清晰了。官方文档可以看这个中文的,比较快一些 https://go-zh.org/doc/

其次参考这个Go指南,练习一遍 https://tour.go-zh.org/welcome/1

现在对Go语言应该有了一个全面的认识,然后你再结合Go语言圣经这本书,深入理解Go的基础。

Go语言圣经中文版 https://www.gitbook.com/book/yar999/gopl-zh/details

然后通过《Go语言实战》这本书,In Action系列都是比较经典的,看这本书的实习可以参考我《Go语言实战》这本书的读书笔记,一共近30篇文章,15万字,非常全面,书里没有的我这里也讲到了很多。这里列其中几篇:

  1. Go语言开发环境搭建详解
  2. Go语言实战笔记(一)| Go包管理
  3. Go语言实战笔记(五)| Go 切片
  4. Go语言实战笔记(九)| Go 接口
  5. Go语言实战笔记(十三)| Go 并发资源竞争
  6. Go语言实战笔记(二十)| Go Context
  7. Go语言实战笔记(二十四)| Go 反射
  8. Go语言实战笔记(二十六)| Go unsafe 包之内存布局

最终再通过一些别的第三方库源代码和实践,就可以完全掌握了。我最近也在分析一些经典库,可以保持关注:

  1. Go语言经典库使用分析(一)| 开篇
  2. Go语言经典库使用分析(二)| Gorilla Context
  3. Go语言经典库使用分析(三)| Gorilla Handlers 详细介绍
  4. Go语言经典库使用分析(四)| Gorilla Handlers 源代码实现分析
  5. Go语言经典库使用分析(五)| Negroni 中间件(一)
  6. Go语言经典库使用分析(六)| Negroni 中间件(二)

此外补充一些有意思的博文:

  1. 一个简单的Golang实现的HTTP Proxy
  2. 一个简单的Golang实现的Socket5 Proxy
  3. GitHub上优秀的Go开源项目
  4. 从Java到Golang快速入门
  5. Golang必备技巧:接口型函数

最新的Go 1.9出来了,这里我专门写了一些不错的Go 1.9新特性的文章,建议参考:

  1. Go语言 | Go 1.9 新特性 Type Alias详解
go入门指南
go轻松学:
 

go学习资料的更多相关文章

  1. webapi的学习资料

    猿教程_-webapi教程-WebAPI教程 猿教程_-webapi教程-Web API概述 猿教程_-webapi教程-新建Web Api项目 猿教程_-webapi教程-测试Web API 猿教程 ...

  2. netty学习资料

    netty学习资料推荐官方文档和<netty权威指南>和<netty in action>这两本书.下面收集下网上分享的资料 netty官方参考文档 Netty 4.x Use ...

  3. iOS 开发学习资料整理(持续更新)

      “如果说我看得比别人远些,那是因为我站在巨人们的肩膀上.” ---牛顿   iOS及Mac开源项目和学习资料[超级全面] http://www.kancloud.cn/digest/ios-mac ...

  4. 最新JavaScript、Ajax典藏级学习资料下载分类汇总 (2011年12月21日更新)

    其他网站开发相关资料            超强HTML和xhtml,CSS精品学习资料下载汇总                                               最新htm ...

  5. VC++/MFC(VC6)开发技术精品学习资料下载汇总

    工欲善其事,必先利其器,VC开发MFC Windows程序,Visual C++或Visual Studio是必须的,恩,这里都给你总结好了,拿去吧:VC/MFC开发必备Visual C++.Visu ...

  6. C/C++编程语言学习资料尽收眼底 电子书+视频教程

    Visual C++(VC/MFC)学习电子书及开发工具下载请看这里 史无前例的网络最全最强C/C++资料索引: C/C++编程语言学习资料尽收眼底 电子书+视频教程 VC++/MFC(VC6)开发技 ...

  7. yaf学习资料

    yaf学习资料 文档 鸟哥的官方文档 Yaf框架结合PHPUnit的集成测试 php yaf框架扩展实践六--单元测试.计划任务.第三方库等 php yaf框架扩展实践一--配置篇 yaf实战例子 y ...

  8. [整理]FPGA学习资料汇总

    01.特权同学倾情奉献海量FPGA学习资料 http://pan.baidu.com/s/1pJIb32F

  9. Python学习资料下载地址(转)

    [转]Python学习资料和教程pdf 开发工具: Python语言集成开发环境 Wingware WingIDE Professional v3.2.12 Python语言集成开发环境 Wingwa ...

  10. 【资源】C++学习资料 - 逆天整理 - 精华无密版【最新】

    再失效就太无语了,链接都是多份的~~—————————————————基础——————————————C++环境搭建(全套)http://pan.baidu.com/s/1o6y0smY链接:http ...

随机推荐

  1. 服务注册和发现 Eureka

    1.项目结构如图 图中的pom.xml 是父级pom eureka-client  和 eureka-server 是两个 Module项目,创建项目都可以用 Spring Initializr 方式 ...

  2. 10.9 顾z校内互坑题

    T1 (help) 题意简述 给定一个长度为\(n\)的序列.然后给出多组询问. 询问\([l,r]\)区间内不等于该段区间\(gcd\)的数的个数. 分析 看到区间问题,优先考虑线段树 or 树状数 ...

  3. HNOI2004 郁闷的出纳员(Splay)

    郁闷的出纳员 OIER公司是一家大型专业化软件公司,有着数以万计的员工.作为一名出纳员,我的任务之一便是统计每位员工的工资.这本来是一份不错的工作,但是令人郁闷的是,我们的老板反复无常,经常调整员工的 ...

  4. 【bzoj2957】【楼房重建】另类的线段树(浅尝ACM-H)

    [pixiv] https://www.pixiv.net/member_illust.php?mode=medium&illust_id=62609346 向大(hei)佬(e)势力学(di ...

  5. iframe和response.sendRedirect()跳转到父页面的问题

    在项目中,因为为了给页面分层次,就使用了 内嵌iframe 的分了三个框.在子页面进行操作的时候,如果session超时,就要被拦截器拦截重新回到首页进行登录,但是在sub页 面 ,进行操作的时候,如 ...

  6. 2.5多线程(Java学习笔记)生产者消费者模式

    一.什么是生产者消费者模式 生产者生产数据存放在缓冲区,消费者从缓冲区拿出数据处理. 可能大家会问这样有何好处? 1.解耦 由于有了缓冲区,生产者和消费者之间不直接依赖,耦合度降低,便于程序拓展和维护 ...

  7. 四. Java继承和多态6. 多态对象的类型转换

    这里所说的对象类型转换,是指存在继承关系的对象,不是任意类型的对象.当对不存在继承关系的对象进行强制类型转换时,java 运行时将抛出 java.lang.ClassCastException 异常. ...

  8. 如何把自己的代码发布到npmjs(npm publish)

    来源: https://www.cnblogs.com/calamus/p/8384318.html

  9. MySQL的id生成策略

    1 自增 CREATE TABLE `test` ( `id` ) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAUL ...

  10. Spring MVC 解读——<mvc:annotation-driven/>

    Spring MVC 解读——<mvc:annotation-driven/> 一.AnnotationDrivenBeanDefinitionParser 通常如果我们希望通过注解的方式 ...