专栏首页Golang语言社区Bowery为什么放弃Node.js,转向Go?

Bowery为什么放弃Node.js,转向Go?

英文来自: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 提供了低级别的并发处理基元,例如 mutexeswait groups 等等。

整合测试框架

  如果希望找到一个标准化的整合测试框架,不妨进入 Go 来体验一番,它内建了完整的测试包,免去了四处寻找的麻烦。如果想编写一个新的测试套件,只要把_test.go 文件添加到相同的包里就可以了。有关 Go 测试的更多信息,请点击这里进行访问。

标准库

  Go 提供了标准库,标准库的好处是无需包含其他扩展库,从而能节省开发时间并且还提高了健壮性。

强大的开发者工作流工具

  Go 的工作区界面能帮助建立标准化的工作流,虽然这或许会压缩了开发的自由度,但得到的是一个结构化的有条理的工作区:该区有三个根目录,src 用于放置源码包,pkg 用于放置编译包,bin 放置的是执行文件。把源码和依赖文件集中存储的好处是使团队成员都有一个相同的文档结构,而不会出现杂乱的文档情况。此外 gofmt 能以相同风格对代码进行格式化,这是一个非常实用的功能。所以一旦需要进行调试,只需集中精力解决当前问题而无需分心处理结构或风格等琐碎问题。

  最后总结几点 Go 语言学习心得,希望对新接触 Go 语言的开发者有所帮助:

本文分享自微信公众号 - Golang语言社区(Golangweb)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-06-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • google舍弃java?android上层应用或采用Go语言

    摘要 Go语言是谷歌2009发布的第二款开源编程语言。Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且...

    李海彬
  • 【Go 语言社区】七牛首席布道师:Go不是在颠覆,就是在逆袭-转

    七牛首席布道师:Go不是在颠覆,就是在逆袭--转 文章来源:http://www.csdn.net/article/2014-07-21/2820743 七牛...

    李海彬
  • 为什么很多公司都转型go语言开发?Go语言能做什么

    选择Go语言的原因可能会有很多,关于Go语言的特性、优势等,我们在之前的文档中也已经介绍了很多了。但是最主要的原因,应该是基于以下两方面的考虑:

    李海彬
  • Go 语言基础入门教程 —— 第一个 Go 程序

    使用 Go 语言之前,首先要安装 Go。Go 为 Linux、Mac、Windows 等不同的平台分别提供了相应的安装包:https://golang.goog...

    学院君
  • 程序员技术选型:写Go还是Java?

    本文作者根据自己的使用体验,详细对比了 Go 和 Java 的使用差异,给了开发者们一个中肯的选用参考。

    深度学习与Python
  • go语言相关资料

    Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, ...

    ccf19881030
  • 一、Go语言由来与关键时间线

    1、Go于2009年11月正式宣布推出,成为开放源代码项目。 2、在2012年早些时候发布了Go 1稳定版本。现在Go的开发已经是完全开放的,并且拥有一个活跃...

    cn華少
  • Go初学者资料必看

    《Go 编程基础》是一套针对 Google 出品的 Go 语言的视频语音教程,主要面向 Go 语言新手级别的学习者。

    公众号guangcity
  • 【从零开始学习Go语言】一.初识Go语言

    Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。

    一只特立独行的兔先生
  • 【从零开始学习Go语言】一.初识Go语言

    Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。

    一只特立独行的兔先生

扫码关注云+社区

领取腾讯云代金券