阅读更多

7顶
0踩

编程语言

原创新闻 Bowery为什么放弃Node.js,转向Go?

2015-02-03 10:02 by 副主编 mengyidan1988 评论(3) 有7785人浏览
【编者按】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语言的开发者有所帮助:

英文来自:Moving from Node.js to Go at Bowery
  • 大小: 114.2 KB
7
0
评论 共 3 条 请登录后发表评论
3 楼 孙佳89 2015-03-06 11:39
还是先学好Node.js吧。
2 楼 shuhen2011 2015-03-04 10:22
Nodejs处理高并发是劣势?
1 楼 buyizhouji 2015-03-03 18:46
既然如此,为何不用Java

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • BootstrapValidator不触发校验的实现代码

    BootstrapValidator是基于bootstrap3的jquery表单验证插件,是最适合bootstrap框架的表单验证插件,本文给大家介绍BootstrapValidator不触发校验的实现代码,感兴趣的朋友一起看看吧

  • bootstrap-validator 验证一个标签同时验证另一个指定标签

    如图 验证str_atBeginDate 同时把str_atTermDate 也作一次验证: 注意 红框中 " value “ 不能少,我之前想的是不用这个 value , 就没有写,结果一直无效。

  • BootstrapValidator详解,触发到验证

    1.引入BootstrapValidator bootstrap-validator.js 二、触发验证 1.bootstrapV触发验证 $('#hdSelectedItemCount1').val(selectedItem.length).trigger("change");; 表单验证参数中要有trigger: ‘change’, 2.手动...

  • bootstrap datepicker 与bootstrapValidator同时使用时选择日期后无法正常触发校验的解决思路

    主要介绍了bootstrap datepicker 与bootstrapValidator同时使用时选择日期后无法正常触发校验的解决思路的相关资料,需要的朋友可以参考下

  • bootstrapValidator手动触发验证,防止验证效果不显示

    '密码不能为空' }, stringLength: {//检测长度 min: 6, max: 20, message: '长度必须在6-20之间' }, regexp: {//正则验证 regexp: /^[a-zA-Z0-9_\.]+$/, message: '所输入的字符不符要求' }, /*identical: { field: ...

  • 手动触发validator

    this.props.form.validateFields([`sampleField[${id}]`], (errors, values) => { if (errors) { } });   转载于:https://www.cnblogs.com/zhouyu0001/p/11334663.html

  • springboot,hibernate validator 手动触发实体校验

    不能为null @AssertTrue 必须为true @AssertFalse 必须为false @Min 必须为数字,其值大于或等于指定的最小值 @Max 必须为数字,其值小于或等于指定的最大值 @DecimalMin 必须为数字,其值大于或等于指定...

  • Hibernate-Validator的使用(一)

    key用{}括起来}这里定义两个文件ValidationMessages_zh_CN.properties和ValidationMessages_en_US.properties来做测试。二者均放在resource目录下ValidationMessages_en_US.properties的内容userName.invalid= ...

  • Validator关于js,jq赋值不触发验证解决办法

    问题1: 如下代码: 这样的配置并没有在提交的时候对表单元素productId进行验证,那是因为Validator默认配置对于“隐藏域(:hidden)、禁用域(:disabled)是不进行验证的。

  • 关于为啥表单最后一个item必填校验不触发util.js:14 async-validator:

    关于为啥表单最后一个item必填校验不触发util.js:14 async-validator:

  • bootstrapValidator不触发校验

    一、前言 BootstrapValidator是基于bootstrap3的jquery表单验证插件,是最适合bootstrap框架的表单验证插件,在工作中用到此框架就写下自己在使用中积累的一些心得 二、问题描述 当按钮的类型为submit时,使用...

  • 解决:element plus form 表单项的校验validator 函数中callback和修改绑定元素值只能触发一个的问题

    元素绑定 输入非法字符后 可以执行重置绑定元素的值,但是callback虽然也执行了只能在控制台显示,并不能... 解决 :将validator绑定的函数中 将重置元素值 和 callback执行 两者任何一个做一个异步执行就可以了。

  • bootstrap-validator校验行为不触发的解决

    画面上有一个输入框,点击输入框弹出一个模态框,在模态框中选择相应的值然后赋值到输入框中,但是当第一次触发非空异常校验时,再次选择一个值填进去后,仍然显示异常校验信息并且校验不通过。后来经过和小伙伴的...

  • bootstrap-datepicker 与bootstrapValidator同时使用时,选择日期后,无法正常触发校验

    一、前言 使用bootstrap-datepicker和bootstrap...可以看出,当选择完日期后,校验结果并没有达到预期,是因为bootstrapValidator插件默认情况下,不会重复校验一个已经标记为验证通过或验证不通过的字段。s...

  • MockMvc触发Hibernate Validator踩坑

    } 为何MockMvc启动没MappingJackson2HttpMessageConverter 因为MockMvc的RequestMappingHandlerAdapter不是由WebMvcConfigurationSupport承建的,而是由于没有其参与,dispatcherServlet找不到handlerAdapters...

  • bootstrap validator ajax提交,bootstrapValidator中用ajax校验

    xlh : {validators : {trigger : 'change',notEmpty : {message : '序列号不能为空'},threshold : 15,// 有2字符以上才发送ajax请求remote : {// ajax验证。server result:{"valid",true or false}url : appPath + ...

  • BootstrapValidator手动触发部分验证

    $('#form1').data("bootstrapValidator").resetField("pwd2"); $("#form1").data("bootstrapValidator").validateField('pwd2');

  • 每日一菜之VUE中change和validator

    由一个bug引发的,输入框输入数字后再删除页面提示报错;经过debug得出的结论是change在validator方法之前执行; 下午茶:今天下雨又刮风,女朋友投喂的生椰大满贯有点冰牙; 昨天买的榴莲还有一大块,晚上回去做...

  • FPGA电机控制方案解析:基于Verilog与Nios2的软硬协同设计

    内容概要:本文详细介绍了基于FPGA的电机控制系统设计方案,重点探讨了Verilog和Nios2软核的协同工作。系统通过将底层驱动(如编码器处理、坐标变换、SVPWM生成等)交给Verilog实现,确保实时性和高效性;同时,复杂的算法(如Park变换、故障保护等)则由Nios2处理。文中展示了多个具体实现细节,如四倍频计数、定点数处理、查表法加速、软硬件交互协议等。此外,还讨论了性能优化方法,如过调制处理、五段式PWM波形生成以及故障保护机制。 适合人群:具备一定FPGA和嵌入式系统基础知识的研发人员,尤其是从事电机控制领域的工程师。 使用场景及目标:适用于希望深入了解FPGA在电机控制中的应用,掌握软硬件协同设计方法,提高系统实时性和效率的技术人员。目标是通过学习本方案,能够独立设计并实现高效的电机控制系统。 其他说明:本文不仅提供了详细的代码片段和技术细节,还分享了许多实践经验,如调试技巧、常见错误及其解决办法等。这对于实际工程项目非常有帮助。

  • 模拟太阳系、轨道进动、时间延迟、光线偏折、黑洞阴影、星团以及航天器轨迹 matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

Global site tag (gtag.js) - Google Analytics