大爱golang,这是最近一段时间的学习和资源的收集汇总。温故而知新!
Keep It Simple and Stupid!
语言基础
为什么应该学习go语言
为什么应该学习go语言 从很多层面分析了为什么应该学习go语言
老外总结的为什么最喜欢go语言
这个老外的编程经验非常丰富,包括Python, Ruby, C++, CHICKEN Scheme, Emacs Lisp, Rust, Java ,Lua, PHP, Erlang and Haskell。真心牛掰,估计年龄也不小了。从2009年就开始使用Go语言了。
资料
Go at Google: Language Design in the Service of Software Engineering
release - go各个版本的release信息
书籍
«The Go Programming Language» - go语言圣经
«Go程序设计语言» - 中文版
Go 1.x兼容性
go 1.x兼容性说明 go 1.x的兼容性是源代码级别的,不是二进制级别的。正确的理解是,代码在 go 1.x的不同版本中是兼容的。但是二进制包不一定。 当升级了go1.x的版本,最好将所有包重新编译一遍。
原文:
Compatibility is at the source level. Binary compatibility for compiled packages is not guaranteed between releases. After a point release, Go source will need to be recompiled to link against the new release.
生产环境实践
Go: Best Practices for Production Environments - SoundCloud的Go生产环境实践
GC
Golang’s Real-time GC in Theory and Practice 浙大有个学生翻译了中文版:Go实时GC——三色算法理论与实践
go gc - LINE团队的一篇文章, 比较肤浅
Go模块化
go vendor目录说明 - vendor目录是在1.6正式引入的
Go模块化官方文档 - Go模块化的官方文档
Go模块化介绍 - 非常好的入门教程,非常有实操性
Go模块代理 - 模块代理可以类比于java的maven,PHP的toran proxy。 Go的开源模块代理:
Go的动态链接库
Shared library in Go? - 讨论go的动态链接库
Go Execution Modes - go的执行模式 - 还未研究过
Writing Modular Go Programs with Plugins - 讲解Go动态链接库的非常好的文章
Go错误处理
Error handling in Upspin - Go语言作者之一Rob Pike自己的一个go的开源软件Upspin的错误处理方式
Go的context包
golang官方博客讲解 文章中的例子:
Context propagation over HTTP in Go - 怎么通过http传递context
微服务
演讲/ppt
简单即复杂 - go语言的一个创始人的演讲
开源库
pkg - 很多有用的库,包括很有名的错误处理库
readline - 类似GNU-Readline,用于开发交互式命令行
cobra - 命令行开发模式
基准测试
性能
持续集成
building a ci system for go with jenkins
不错的blog
bradfitz.com - 大牛啊,memcached的作者,现在一直在google写go,是net/http的维护者,膜拜!
飞雪无情的博客 - 中文,不错
行思錄 | Travel Coder - 架构师
apocelipes - 中文, 有一些golang抓取数据和使用golang开发qt gui程序的东西
dave.cheney.net - 专注golang和k8s,也是github.com/pkg的一个贡献者
roberto.selbach.ca - 里面详细介绍了怎么使用GOPROXY,搭建一个自己的代码仓库
pusher的技术博客,很多golang的实践 - pusher应该是一个做app push的服务?