GO语言适用场景及GO语言的优势

206 阅读10分钟
原文链接: click.aliyun.com
4

韩俊强 已获得野营灯

野营灯照亮你的美~
1、你使用GO语言做过什么项目开发?

目前只做相关的性能检测,并未接入大的项目;

2、你认为GO语言的优势在哪里?

1.性能优越感;Go 极其地快,其性能与 Java 或 C++相似。在我们的使用中,Go 一般比 Python 要快 30 倍;
2.序列化/去序列化、排序和聚合中表现优异;
3.开发者效率较高;多种赋值、数据结构、指针、格式化以及内置的 HTTP 库等能使给开发者提供快速着手开发;
4.Go 的并发性方法非常容易上手;
5.编译速度快;
6.增强团队语言聚合力;Go 非常简单,且易于学习。它只提供了基本功能而没有多余。Go 引入的新概念是「defer」声明,以及内置的带有 goroutines 和通道的并发性管理。
7.Go 具备稳定的生态系统;Go 有着强大的工具支持,面向 Redis、RabbitMQ、PostgreSQL、Template parsing、Task scheduling、Expression parsing 和 RocksDB 的稳定的库;
8.GOFMT,强制代码格式;Gofmt 用一种官方的形式规格代码,避免了不必要的讨论;
9.Go 语言对 protocol buffers 和 gRPC 有一流的支持等;

3、你最喜欢GO语言的什么特点?

主要还是比较看着Go的高性能;在我们的使用中,性能高就可以做更多扩展,特别是业务复杂的情况下, 性能是第一保障;使用 Go 建立东西需要更多的时间,但在后续的代码优化上可以节省大量时间。 Go 一般比 Python 要快 30 倍。以下是 Go 与 Java 之间的基准比较:
f397f956d91df08ed90e19929699598b_jpeg

发布时间:4个月前 0人评论
2

nothingfinal 已获得定制保温杯

1、你使用GO语言做过什么项目开发?
接触的项目使用GO语言开发过web代理,TCP通信采集前端数据,avro编解码等功能。

2、你认为GO语言的优势在哪里?
A、部署简单。Go 编译生成的是一个静态可执行文件,除了 glibc 外没有其他外部依赖。这让部署变得异常方便:目标机器上只需要一个基础的系统和必要的管理、监控工具,完全不需要操心应用所需的各种包、库的依赖关系,大大减轻了维护的负担。这和 Python 有着巨大的区别。由于历史的原因,Python 的部署工具生态相当混乱【比如 setuptools, distutils, pip, buildout 的不同适用场合以及兼容性问题】。官方 PyPI 源又经常出问题,需要搭建私有镜像,而维护这个镜像又要花费不少时间和精力。
B、并发性好。Goroutine 和 channel 使得编写高并发的服务端软件变得相当容易,很多情况下完全不需要考虑锁机制以及由此带来的各种问题。单个 Go 应用也能有效的利用多个 CPU 核,并行执行的性能好。这和 Python 也是天壤之比。多线程和多进程的服务端程序编写起来并不简单,而且由于全局锁 GIL 的原因,多线程的 Python 程序并不能有效利用多核,只能用多进程的方式部署;如果用标准库里的 multiprocessing 包又会对监控和管理造成不少的挑战【我们用的 supervisor 管理进程,对 fork 支持不好】。部署 Python 应用的时候通常是每个 CPU 核部署一个应用,这会造成不少资源的浪费,比如假设某个 Python 应用启动后需要占用 100MB 内存,而服务器有 32 个 CPU 核,那么留一个核给系统、运行 31 个应用副本就要浪费 3GB 的内存资源。
C、良好的语言设计。从学术的角度讲 Go 语言其实非常平庸,不支持许多高级的语言特性;但从工程的角度讲,Go 的设计是非常优秀的:规范足够简单灵活,有其他语言基础的程序员都能迅速上手。更重要的是 Go 自带完善的工具链,大大提高了团队协作的一致性。比如 gofmt 自动排版 Go 代码,很大程度上杜绝了不同人写的代码排版风格不一致的问题。把编辑器配置成在编辑存档的时候自动运行 gofmt,这样在编写代码的时候可以随意摆放位置,存档的时候自动变成正确排版的代码。此外还有 gofix, govet 等非常有用的工具。
D、执行性能好。虽然不如 C 和 Java,但通常比原生 Python 应用还是高一个数量级的,适合编写一些瓶颈业务。内存占用也非常省。

3、你最喜欢GO语言的什么特点?
GO语言号称是为并发而设计的语言,当然最喜欢的是开发并发简单。

发布时间:4个月前 0人评论
0

aoteman675 已获得手机话费

1、你使用GO语言做过什么项目开发?
2013年学习GO语言,但是谷歌宣传是替代Java做完安卓的编程语言,但是后来就没有消息了,只是GO在服务器应用层面上比较多,性能强大。我也是用GO开发过服务器应用软件,相对应地框架很少。
2、你认为GO语言的优势在哪里?
写起来简单,和kotlin一样简单,编译速度快。运行效率高。主要是减少了代码的工作量。
3、你最喜欢GO语言的什么特点?
喜欢它的高效,能和C++和C具有相同的效率,执行效率高,它是系统级语言,如果是服务器软件的开发,我会优先考虑GO语言。

发布时间:4个月前 0人评论
0

小可同学 已获得手机话费

1、你使用GO语言做过什么项目开发?
用来做 日志处理、数据打包啥的,项目做过一个小的Web项目

2、你认为GO语言的优势在哪里?
优势很明显,可直接编译成机器码,不依赖其他库,glibc的版本有一定要求,部署就是扔一个文件上去就完成了。
虽然是静态类型语言,但是有动态语言的感觉,静态类型的语言就是可以在编译的时候检查出来隐藏的大多数问题,动态语言的感觉就是有很多的包可以使用,写起来的效率很高。

3、你最喜欢GO语言的什么特点?
一个理由!!部署简单

发布时间:4个月前 0人评论
0

cjsoldier 已获得手机话费

1、你使用GO语言做过什么项目开发?
项目中没用到过。

2、你认为GO语言的优势在哪里?

  • 多核并行编程。语言层面上针对多核优化,程序员不用直接跟core打交道了。
  • Golang只依赖glibc,这样Golang开发出来的软件几乎能完美地运行在*nix操作系统的服务器上,比如大名鼎鼎的docker就是用Golang写的。
  • 高并发编程。像dgraph,cayley这样的图数据库都是用Golang写的。还有一些对性能要求高的rest服务也是用Golang写的。

3、你最喜欢GO语言的什么特点?

  • 语法简洁,直来直去。不像Java婆婆妈妈的。动不动就public static final String ABCD;
  • 函数返回多个值。我印象中只有脚本语言才有这样的待遇吧。Golang能提供这样的特性,我很欣慰。
  • 省内存。
发布时间:4个月前 0人评论
1

yelifeng

暂时只是进行过将go语言写mysql监控脚本改造成python语言的监控脚本

发布时间:4个月前 0人评论
1

微wx笑

1、你使用GO语言做过什么项目开发?
Hello World 算不算?

2、你认为GO语言的优势在哪里?
用的不多,主要还是效率吧。

3、你最喜欢GO语言的什么特点?
跨平台,编译后依赖性不强。

发布时间:4个月前 0人评论
0

1361922500311612

强大的go语言

发布时间:4个月前 0人评论
0

peach5460

1、你使用GO语言做过什么项目开发?

目前还没用go写过项目,正在学习中

2、你认为GO语言的优势在哪里?

谷歌出品,语法简单

3、你最喜欢GO语言的什么特点?

类c++学习成本低

发布时间:4个月前 0人评论
0

nemovip

1.性能优越感;Go 极其地快,其性能与 Java 或 C++相似。在我们的使用中,Go 一般比 Python 要快 30 倍;
2.序列化/去序列化、排序和聚合中表现优异;
3.开发者效率较高;多种赋值、数据结构、指针、格式化以及内置的 HTTP 库等能使给开发者提供快速着手开发;
4.Go 的并发性方法非常容易上手;
5.编译速度快;
6.增强团队语言聚合力;Go 非常简单,且易于学习。它只提供了基本功能而没有多余。Go 引入的新概念是「defer」声明,以及内置的带有 goroutines 和通道的并发性管理。
7.Go 具备稳定的生态系统;Go 有着强大的工具支持,面向 Redis、RabbitMQ、PostgreSQL、Template parsing、Task scheduling、Expression parsing 和 RocksDB 的稳定的库;
8.GOFMT,强制代码格式;Gofmt 用一种官方的形式规格代码,避免了不必要的讨论;
9.Go 语言对 protocol buffers 和 gRPC 有一流的支持

发布时间:4个月前 0人评论
0

1914500535475426

系统级编译语言。。。。。。。。。。。。。。。。。。。。。。。。great

发布时间:4个月前 0人评论
0

好人卡小高

1、你使用GO语言做过什么项目开发?
没做过go的项目开发
2、你认为GO语言的优势在哪里?
性能强劲,比起python的效率高了不是一点点,而且没有java这么臃肿。
3、你最喜欢GO语言的什么特点?
依赖性不强,编译好的东西丢上去就能跑,不用像python装各种库,也不需要像java那样依赖jvm。唯一想吐槽的是编译时候的依赖有一部分都被伟大的墙给拦截了,不能翻墙的话,就特别痛苦。特别是在做jenkins编译发布的时候,简直要疯了

发布时间:4个月前 0人评论
0

浮生递归

1、你使用GO语言做过什么项目开发?
虽然是2007年出的语言,最近看到的报道也比较多,但是我还没使用过go语言。毕竟新语言太多了,来不及都学。而且学习的目的不是为了学习,是为了应用,所以我都是学的少,用的多,不够用了才去学。

2、你认为GO语言的优势在哪里?
编译速度快,开发效率高。还有谷歌这座大山作为后盾。

3、你最喜欢GO语言的什么特点?
这个问题跟第二个问题有交集啊...go语言的零值初始化,自动推导类型,多值返回,垃圾回收这些特点我都比较喜欢~~

发布时间:4个月前 0人评论
0

快递

你使用GO语言做过什么项目开发?
项目中没用到过。

发布时间:4个月前 0人评论
0

欲楼

可以写压测工具,利用其非常优越的协程

发布时间:4个月前 0人评论
0

1081351312366426

我们用go写容器类的服务,主要看中了go运行时对环境较少的依赖,一个二进制执行文件,无论放在什么镜像环境,都是即插即用

发布时间:4个月前 0人评论
0

1717222283513466

这是专业人事用的,我不会,需要老百姓关注的话题。谢谢

发布时间:4个月前 0人评论