几句话解释Go的好处

我习惯使用的 Java 语言却非常粗糙,有时还很复杂,因为你必须添加大量的层和重复。而当我试着用Go HTTP 服务器制作了一些 API,几分钟后,就能让它运行。

几个月后,我有机会参与了他工作的一个运营自动化项目。我们用 Go 语言建立了几个 API,并用一些 AWS 工具(如用 Go 语言编写的 AWS Lambda)在它们之间进行通信。这个项目很成功,最大的公司决定收购这个项目。

之后,我继续在我工作的下一家(当前)公司中使用 Go,构建了一个真正的微服务环境,以 Go 作为后端的主要语言,取代了 Typescript 整体。

为什么我们选择Go?让我尝试列举一些促使我们选择 Go 而非其他编程语言的因素。

明确明显
Go 代码非常明显,有人开玩笑说它是一种无聊的代码,这真是妙极了。

Go 是一种非常快的语言。因为 Go 是编译语言,所以它的性能自然要优于解释型语言或虚拟运行时语言。编译速度极快,生成的二进制文件也非常小。这样,您就可以每天部署数次,完全符合 DevOps 方法论。

Go 的语法小而强大,因此很容易学习。你可以把大部分语法记在脑子里,这意味着你不需要花很多时间去查找。它还非常简洁易读。非 Go 程序员,尤其是习惯了 C 风格语法的程序员,在阅读 Go 程序时通常都能理解其中的含义。

Go 是一种强静态类型语言。它有 int、字节和字符串等基元类型。还有结构struct体。与其他强类型语言一样,类型系统允许编译器帮助捕捉整类错误。Go 还内置了列表和映射类型,使用起来非常方便。

Go 拥有接口,任何结构体都可以通过实现接口的方法来满足接口的要求。Go 还拥有一流的函数,这为以更函数化的风格编写代码提供了可能。

Go 有一个很好的标准库,因此 Go 程序通常很少有外部依赖。它为处理原始类型提供了方便的内置函数。一些软件包可以轻松设置网络服务器、处理 I/O 和数据操作。标准库提供的 JSON 序列化和反序列化非常简单。

Go 使得并发性比其他语言更容易。使用 goroutine(s) 和 channel(s) 几乎是小菜一碟,而更复杂的模式也是可能的。

Go 在其标准库中提供了开箱即用的测试支持。不需要额外的依赖。如果你有一个名为 thing.go 的文件,在另一个名为 thing_test.go 的文件中编写你的测试,然后运行 "go test"。Go 会自动执行这些测试。

Go 静态分析工具种类繁多,功能强大。其中特别值得一提的是 gofmt,它可以根据 Go 建议的风格格式化你的代码。由于有了单一的代码格式和强大的标准库,您可以专注于创造业务价值,而不是讨论在哪里放置这个条件或如何定义那个数据结构。

Go 提供了一个内存安全的动态对象分配和垃圾回收系统,这一切都比 C 和 C++ 更简单。此外,由于不允许使用指针运算,因此使用指针更加安全。它还提供了使用值类型的选项。

Go 的编码风格遵循视线:其理念是,沿着函数的边缘向下,应该是最理想的路径,因此它位于左边缘。其他任何错误或边缘情况都不应该出现在正确的路径上,所以应该缩进。这样,代码就变得超级易读和易懂,而且在 99% 的情况下都不需要使用其他代码。

当你看到 Go 代码中有一部分代码缩进了,你就知道那是函数的出口,而快乐路径就在它的左边缘。

简单、干净、伟大,GO!