假如你对golang感兴趣,却尚未开始入门,这篇文章就是为你准备的.
为什么要学习golang?
游说开发者尝试golang的文章很多.比如golang主要设计者的演讲,某个德国人的吐槽,国内golang布道者所著书籍的前言.我不想重复一遍大牛们的观点,只想说一说自己朴素的感受.
在学习golang之前,我是java的爱好者,犹如iteye的大多数用户一样.是的,我喜欢java,开源,跨平台,强大的IDE支持,最重要的是--工作机会很多.
但是同时我也讨厌java.臃肿又不可或缺的IDE,总是让我生起逃离的冲动.语言缺乏表达力让我觉得自己是一个啰嗦的大婶.繁琐的配置让我看到xml文件就想吐.
后来接触到golang,才发现我对编程语言的大多数畅想都在golang身上实现了:
1.不需要IDE支持,只需要简单的步骤就可以配置出完美的编辑环境.
2.兼具动态语言的开发效率和静态语言的运行效率.有人说golang是c和python的合体,这是非常贴切的形容.
3. 远离xml.
4.和*nix系统天然的亲和力.
5.享受与语言一同成长,进步,成熟的乐趣.
现在我白天在公司编写java代码,而业余学习时间则全部给了golang.
安装与环境配置
点击下载golang安装包,如果链接无法访问(好奇葩的墙),请尝试将:
173.194.71.141 golang.org
加入hosts文件.
需要配置的环境变量有(以linux为例):
在命令行下输入go version验证是否一切顺利.
编辑器
强烈建议使用SublimeText2+GoSublime+gocode+Margo构建golang编辑环境.
其中GoSublime是SublimeText2的一款插件,而gocode和MarGo则为GoSublime提供代码自动补全等功能.
关于SublimeText2的介绍请参考这里.
推荐理由:
支持所有平台.
SublimeText2界面清爽,反应极快,用起来非常舒心.完全不会给人如IDE般臃肿的感觉.
安装步骤:
1.下载安装SublimeText2.
2.安装packagecontrol,用来管理ST2的插件.打开SublimeText2,按下ctrl+~,将以下命令输入到控制台中:
- importurllib2,os;
- pf='PackageControl.sublime-package';
- ipp=sublime.installed_packages_path();
- os.makedirs(ipp)ifnotos.path.exists(ipp)elseNone;
- open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace('','%20')).read())
3.重启ST2,如果在Preferece-PackageSettings中看到PackageControl说明安装成功.
4.通过PackageControl安装GoSublime插件.按下ctrl+shift+p,输入install后回车.等待响应后输入gosublime,选择进行安装.
5.在bash/dos命令行中输入:
goget-ugithub.com/nsf/gocode
goget-ugithub.com/DisposaBoy/MarGo
goinstallgithub.com/nsf/gocode
goinstallgithub.com/DisposaBoy/MarGo
安装完gocode和MarGo后,切换到$GOPATH/bin目录,运行./MarGo.
至此,编辑环境配置完成,点击查看最后的界面.
文档
既可以直接访问golang.org/doc,也可以在命令行中输入:
godoc -http=:8080
后访问本地镜像:
localhost:8080
入门书籍
最开始时,建议学习官方网站上的a-tour-of-golang.
接下来,learning-go是一本不错的开源书籍,其中文版由xingxing翻译和维护,翻译质量非常不错.
也可以考虑最近出版的<<go语言编程>>,该书作者是国内使用golang编写大型程序的先驱.
对web感兴趣的同学可以关注networkprogramwithgo,Go Web 编程等.
社区
建议加入golang-china邮件列表,这个社区非常活跃,每天的讨论邮件基本上都在50封以上.当然英文好的同学可以选择golang-nuts.