go 工具来了,集大成,全整合。没了 Makefile 还真有点不习惯。此文甚好,早就想翻译了,无奈最近焦头烂额……不管怎么样,还是动手了。

原文要翻墙,访问请谨慎:The go tool

—————-翻译分隔线—————-

线上介绍了 go 命令的最新 weekly 发布后,我决定写一些关于它的内容。我得承认,在第一次听说统一 go 工具的时候,我满是怀疑并对此非常恐惧。我担心它会像大多数其他语言特定的包管理器一样混乱。个人认为多数这种包管理器都是在重新发明轮子,并且与操作系统的包管理器发生冲突,让系统管理员生活的更加艰辛。另外,我确实喜欢 makefile,它们简单并且直接,工作得也很好。幸运的是,新的 go 工具驱散了我的恐惧!
Continue reading »

 

Go1 发布的日子越来越近,Golang 社区就像将开了的山泉水一样,泊泊的不断传来各种关于 Go1 的声音。
这篇文章总结得比较完整,很清晰,随即翻译于此。
原文:http://gophersays.com/from-r60-to-go1/

—————-翻译分割线—————-

Go 1 已经到门口了,伙计们,它有许多变化

这里是关于你必须知道的一些重要事情:

Go 命令
新的 map delete 语法
Error 有了自己的包
重写的库
新的库
Continue reading »

 

原文在此:http://en.munknex.net/2011/12/golang-goroutines-performance.html

————————–翻译分割线————————–

概述

在这篇文章里,我将尝试评估 goroutine 的性能。goroutine 是类似轻量级线程的东西。为了提供原生的多任务,它(协同 channel 一起)被内建于Go中。

文档告诉我们:

它实际上是在同一个地址空间里创建成百上千个 goroutine。

因此,这个文章的重点就是测试并明确在如此巨大的并发运行函数的情况下所能承受的性能压力上限。
Continue reading »

 

英文版本是《A Tour of Go》。我看过之后觉得这种学习体验非常棒,随即按照规则翻译了中文版本:

Go 指南

这个中文版本是部署在 GAE 上的,由于受到功夫网的影响,国内用户无法正常访问。所以,大家八仙过海吧。

(人还在这里,心已经出去了……)

由于许多原因,可能有的朋友无法一窥墙外之物。也可以通过源码将指南安装到本地使用。指南中有详细的说明,转发到这里,诸位自便吧。代码我托管在了 http://bitbucket.org/mikespook/go-tour-zh

Continue reading »

 

前两天在某 golang 的 QQ 群里,有人对 channel 批判了一番。当时我就很想送他一副图,两句话。

When in Rome, do as the Romans do.
When in Golang, do as the Gophers do.

这本是为了参加 ECUG 2011 Con. 的幻灯片里制作的一副图。
自己感觉很满意。能体现使用 golang 的方法的核心思想。

分享出来,大家开心一下吧。

 

golang 本身在代码的 misc/vim 中提供了相应脚本,用来集成 golang 的 vim 环境。而第三方项目 gocode 则更是一个强大的工具。我在《gocode——VIM 和 Emacs 的 golang 代码自动补全》中已经介绍过了。

这两个项目都很活跃,而社区活跃带来的最大麻烦就是频繁更新。为了能方便的升级 vim 环境的 golang 脚本,所以写了这个 shell。

可以 step by step 的协助集成 golang 相关脚本到 vim 中。

下载地址:https://bitbucket.org/mikespook/learning_go_chinese/downloads/vim.sh

虽然脚本会检测相关环境变量和依赖程序,不过还是最好提前设置好,免得麻烦。当然也可以将脚本到某个目录,让脚本自动下载 go 代码和 gocode 代码。

现在唯一没在这个脚本中集成的就是环境变量的设置和 .vimrc 中关于 syntax 之类的通用设置的开启。这些内容,DIY吧。

 

第一次知道反射的时候还是许多年前在学校里玩 C# 的时候。那时总是弄不清楚这个复杂的玩意能有什么实际用途……然后发现 Java 有这个,后来发现 PHP 也有了,再后来 Objective-C、Python 什么的也都有……甚至连 Delphi 也有 TRttiContext……反射无处不在!!!

Go 作为一个集大成的现代系统级语言,当然也需要有,必须的!

大牛 Rob Pike 的这篇文章相对全面的介绍了 Go 语言中的反射的机制已经使用。觉得值得研读,于是翻译于此。

———-翻译分割线———-

反射的规则

在运行时反射是程序检查其所拥有的结构,尤其是类型的一种能力;这是元编程的一种形式。它同时也是造成混淆的重要来源。

在这篇文章中将试图明确解释在 Go 中的反射是如何工作的。每个语言的反射模型都不同(同时许多语言根本不支持反射)。不过这篇文章是关于 Go 的,因此接下来的内容“反射”这一词表示“在 Go 中的反射”。
Continue reading »

 

鱼哥(https://twitter.com/#!/smallfishxy)上个月勒令我要完成 0.4 版的翻译。之前公司重组的时候,没顾上看英文版本的更新,结果这老外不声不响的做了如此之多的改动……

于是只好人工 diff,一条一条的对比 commit 内容。

总算是跟进到了 0.4 这个 tag。

发布一个可看的中文版吧:http://www.mikespook.com/learning-go/ (20110904)

未校对,未调整,未优化。你们懂的!

 

Golang 错误处理的 Panic – Recover 模型确实不太一样,Go 团队的博客上写了一篇相对完整的介绍这个模型使用的文章“Error handling and Go”。我觉得挺好,故翻译于此。本应早就完成这个翻译了,不过由于公司重组等等原因,一直留了首尾没能处理完整。所以拖到了今天,真是不应该啊!

————————翻译分割线————————–

错误处理和Go

如果你已经编写过 Go 代码,可能已经遇到过 os.Error 类型了。Go 代码使用 os.Error 值来标示异常状态。例如,当 os.Open 函数打开文件失败时,返回一个非 nil 的 os.Error 值。

func Open(name string) (file *File, err Error)

下面的函数使用 os.Open 打开一个文件。如果产生了错误,它会调用 log.Fatal 打印错误信息并且中断运行。
Continue reading »

 

继续前文的翻译。更进一步的对 Go 进行了介绍。一个德国人,用英文写了如此的长篇大论,这是一种什么样的国际主义精神……

———————–翻译分割线———————–

Go编程语言,或者:为什么除了它,其他类C语言都是垃圾

[翻译]Go编程语言,或者:为什么除了它,其他类C语言都是垃圾(1)

[翻译]Go编程语言,或者:为什么除了它,其他类C语言都是垃圾(2)

扩展

Go 真正强大的在于到现在为止,那些无法在 C、C++或者其他上面提到的任何语言中找到对应的地方。这些才是真正让 Go 光彩夺目的:

Continue reading »

© 2011 Some reminiscences, some memories Suffusion theme by Sayontan Sinha