Go和Node在使用上的区别Go主题月前言面对的业

前言

我是一名node开发,为了大茶缸的关系,我也加入到了学习Go的大部队中,通过这段时间的学习,以及对Go的一个使用上,也是有了一点小小的心得体会,这里我来聊一下我的感觉(这不是一篇技术文章,只是我的一些感想)

面对的业务场景

因为我目前所在的公司是一个从事saas开发的公司,所以我是用node更多的是作为一个写插件,或者说是做一些saas没有完成的一些小功能,总的来说有点类似于一个小的中台,它其实并不是一个纯正的服务端架构。

而Go在公司里面是被用于容器开发,或者说在面向一些高并发的场景情况下,来进行使用。

同时Go在使用上会有很多的分布式的场景,但是在Node上却比较少用到分布式(也可能是因为我菜)。

写法上的区别

另外一个是写法上两者有很大的区别,我们知道Node是通过JavaScript来完成的,而JavaScript是一门动态的语言,也就是如果有一些语法上的错误,只有程序跑起来的时候,才能找到,而动态类型的语言如果在项目持续性增大的时候,维护起来是非常不方便的。

反观Go,它是一门静态类型的语言,它会在编译的时候,就把错误给告诉你,同时因为Go不需要通过多一层的转译,构建的时候,也会比Node要来的快一些。

异步非阻塞和多线程的区别

我们知道Go和Node都是应对密集IO有一个很优秀的效果,一个是因为goroutine,一个则是因为异步非阻塞,其实Node并不是说它处理的有多快,而是因为它的响应速度非常的快,但是Go则是通过goroutine的关系,可以做到类似于多线程,但是有没有线程切换等大开销的动作,所以也很快。

最后

这只是一篇我自己的一个碎碎念,也算是我在学习Go的旅程中的一个小小的总结吧。