英文来自:Moving from Node.js to Go at Bowery
Go 语言自从面世就受到了很多开发者的欢迎,越来越多的项目基于 Go 语言实现,例如非常著名的云计算项目 Docker。而本文作者分享了其从 Node.js 转到 Go 语言后,整个开发平台的性能得到显著提升,并从中总结出 Go 的六大亮点。
以下为译文:
Bowery 是一个基于云技术的开发平台,强大的协同处理技术让即使分散各地的团队成员都能无缝地进行工作。在 2014 年进行的一次由 Node.js 转到 Go 的变更中,Bowery 获得了不错的性能提升。那么 Go 有哪些亮点值得开发者关注的呢?
强大的跨平台编程能力
Bowery 团队指出 Go 能很方便地在不同系统里进行程序编译,这是他们转入 Go 的重要原因之一。
作为开发平台,对 Linux,Windows,OSX 等常见操作系统提供支援是能否吸引开发者的基本要素。在 Go 中,开发者可以针对不同操作系统定义不同的文件来实现相同的功能函数。Bowery 团队成员 Larz 在创建 Prompt 应用(命令行输入)时,就是借助 Go 而轻松实现了跨平台编译。而开发者要做的,就是设置好不同的环境变量。
快速部署
在 Go 平台中,从测试环境到真实环境的切换是非常便捷的,因为它无需额外的系统依赖。特别是对于 Bowery 提供给用户的命令行工具来说,用户无需安装 Java,RVM 或者 NPM 等工具便可正常运行。
并发处理
Node.js 在并发处理方面处于劣势,仅有I/O程序或计时器运行在并发模式。因此如果希望打造一个快速响应的跨程序通讯系统,Go 无疑是更好的选择。Go 提供了低级别的并发处理基元,例如 mutexes、wait groups 等等。
整合测试框架
如果希望找到一个标准化的整合测试框架,不妨进入 Go 来体验一番,它内建了完整的测试包,免去了四处寻找的麻烦。如果想编写一个新的测试套件,只要把_test.go 文件添加到相同的包里就可以了。有关 Go 测试的更多信息,请点击这里进行访问。
标准库
Go 提供了标准库,标准库的好处是无需包含其他扩展库,从而能节省开发时间并且还提高了健壮性。
强大的开发者工作流工具
Go 的工作区界面能帮助建立标准化的工作流,虽然这或许会压缩了开发的自由度,但得到的是一个结构化的有条理的工作区:该区有三个根目录,src 用于放置源码包,pkg 用于放置编译包,bin 放置的是执行文件。把源码和依赖文件集中存储的好处是使团队成员都有一个相同的文档结构,而不会出现杂乱的文档情况。此外 gofmt 能以相同风格对代码进行格式化,这是一个非常实用的功能。所以一旦需要进行调试,只需集中精力解决当前问题而无需分心处理结构或风格等琐碎问题。
最后总结几点 Go 语言学习心得,希望对新接触 Go 语言的开发者有所帮助: