我们要考虑一个高性能解决方案,首先要考虑:方案是否能解决问题,其次是否足够简单,研发人员能少写代码,运维方便维护部署。而 golang 比较符合预期。
我使用 golang
时间不多,没有深入研究,算是入门级别,也总结一下使用的心得吧,下面简单说说 golang 的几个主要优点。
1. 高性能-协程
golang 源码级别支持协程,实现简单;对比进程和线程,协程占用资源少,能够简洁高效地处理高并发问题。
2. 生态
背靠谷歌,生态丰富,轻松 go get
获取各种高质量轮子。用户可以专注于业务逻辑,避免重复造轮子。
3. 部署
部署简单,源码编译成执行文件后,可以直接运行,减少了对其它插件依赖。不像其它语言,执行文件依赖各种插件,各种库,研发机器运行正常,部署到生产环境,死活跑不起来 😭。
4. 跨平台
很多语言都支持跨平台,把这个优点单独拿出来,貌似没有什么值得称道的,但是结合上述优点,它的综合能力就非常强了。
5. 代码极简
个人认为 golang 是 C / C++ / python 的结合体,它是一门全新的语言,入门和使用相对简单,是性能和代码极简之间的一种平衡。
6. 其它
golang 还有很多优点,例如有自己的 GC
,有 defer
功能,函数可以返回多个参数等等,个人认为,最主要还是上面提到的几个。
PS: 语言只是工具,没有高低之分,解决问题,哪个方便用哪个。