Web Analytics

Go语言:成长的十年

Go语言之父,Google大神Rob Pike代表Go语言的另外两位缔造者Robert Griesemer和Ken Thompson在自己的博客上发表了一篇名为《Go: Ten years and climbing》的文章,用以纪念Go语言从最初的设计idea起到目前的十年发展。笔者读完后,也是深有感触,因此在这里粗略翻译一下全文,希望能有更多的程序员加入到Gopher行列中来。 ...

September 24, 2017 · 6 min · Tony Bai

Go coding in go way

本篇文章是我在2017年第三届GopherChina大会上所作talk:”Go coding in go way“的改编和展开版,全文如下。 一、序 今天我要分享的题目是**“Go coding in go way”,中文含义就是用“Go语言编程思维去写Go代码”**。看到这个题目大家不禁要问:究竟什么是Go语言编程思维呢?关于什么是Go语言变成思维其实并没有官方说法。这里要和大家交流的内容都是基于Go诞生七年多以来我个人对Go的设计者、Go team以及Go主流社区的观点和代码行为的整理、分析和总结。希望通过我的这次“抛砖引玉”,让在座的Gopher们对“Go语言编程思维”有一个初步的认知,并在日常开发工作中遵循Go语言的编程思维,写出idiomatic的Go代码。 ...

April 20, 2017 · 31 min · Tony Bai

Go 1.7中值得关注的几个变化

零、从Release Cycle说起 从Go 1.3版本开始,Golang核心开发Team的版本开发周期逐渐稳定下来。经过Go 1.4、Go1.5和Go 1.6的实践,大神Russ Cox在Go wiki上大致定义了Go Release Cycle的一般流程: ...

June 21, 2016 · 14 min · Tony Bai

Go 1.6中值得关注的几个变化

北京时间2016年2月18日凌晨,在Go 1.5发布 半年后,Go 1.6正式Release 了。与Go 1.5的“惊天巨变”(主要指Go自举)相比,Go 1.6的Change 算是很小的了,当然这也与Go 1.6的dev cycle过于短暂有关。但Go社区对此次发布却甚是重视,其热烈程度甚至超出了Go 1.5。在Dave Cheney的倡导 下,Gophers们在全球各地举行了Go 1.6 Release Party。 Go Core Team也在Reddit上开了一个AMA – Ask Me Anything,RobPike、Russ Cox(Rsc)、Bradfitz等Go大神齐上阵,对广大Gophers们在24hour内的问题有问必答。 ...

February 21, 2016 · 10 min · Tony Bai

Go语言错误处理

近期闲暇用Go写一个lib,其中涉及到error处理的地方让我琢磨了许久。关于Go错误处理的资料和视频已有许多,Go authors们也在官方Articles和Blog上多次提到过一些Go error handling方面的一些tips和best practice,这里仅仅算是做个收集和小结,尽视野所及,如有不足,欢迎评论中补充。(10月因各种原因,没有耕博,月末来一发,希望未为晚矣 ^_^) ...

October 30, 2015 · 10 min · Tony Bai

理解Golang语句中的求值顺序

Golang在变量声明、初始化以及赋值语句上照比C语言有了许多改进: a) 支持在同一行声明多个变量 var a, b, c int b) 支持在同一行初始化多个变量(不同类型也可以) var a, b, c = 5, “hello”, 3.45 a, b, c := 5, “hello”, 3.45 (short variable declaration) ...

August 27, 2015 · 8 min · Tony Bai

也谈并发与并行

在一般人的眼中,“并行”就是并行,即你干你的,我干我的,两个“并行”的执行过程可能是两条毫无瓜葛的平行线,也可能是有交叉,但瞬即分开的两条线。不 过在程序员的世界里,有关“并行”的概念却有两个单词:Concurrency和Parallelism,对应的比较主流的中文翻译为并发 (Concurrency)和并行(Parallelism)。 ...

June 23, 2015 · 7 min · Tony Bai

Goroutine是如何工作的

在golangweekly的第36期Go Newsletter中我发现一篇短文“How Goroutines Work” ,其作者在参考了诸多资料后,简短概要地总结了一下 Goroutine的工作原理,感觉十分适合刚入门的Gophers(深入理解Goroutine调度的话,可以参考Daniel Morsing的" The Go scheduler" )。这里粗译如下。 ...

November 15, 2014 · 5 min · Tony Bai

Go语言的有效错误处理

中午闲暇翻看Daniel Morsing的“The Go scheduler”时,发现其另外一篇短文“Effective error handling in Go”,文章不长,但感觉对Go中错误处理方法总结的还是比较到位的,这里译之供大家参考。 一、简介 Go语言受到诟病最多的一项就是其错误处理机制。如果显式地检查和处理每个error,这恐怕的确会让人望而却步。你可以试试这里列出的几个方法,以避免你走入错误处理方法的误区当中去。 ...

November 14, 2014 · 3 min · Tony Bai

Go,5周年

2014年11月10日(美国当地时间),Golang的官方博客 放出了Andrew Gerrand的一篇博文《Half a decade with Go》来纪念Go语言发布五周年。文章按时间顺序简要描述了Golang这五年来发展的 点点滴滴,并让全世界Gopher看到了Go可期的光明未来。考虑到这篇文章在墙外,不便于国内Gopher阅读,这里给出中文翻译版,希望能给中国大陆 的Gophers带来些帮助! ...

November 12, 2014 · 4 min · Tony Bai