你所不知道的 Go 语言的一些令人惊叹的优点

首发于:https://studygolang.com/articles/12565

插图来自 https://github.com/ashleymcnamara/gophers

在这篇文章中,我将会讨论为什么你应该尝试下 语言,并且应该从哪里开始下手。

是一种编程语言,在过去的几年中你可能听说过很多。尽管是在 年创建的,但是近年来才开始流行。

上图是根据 得出的 的流行程度

本文不是关于你通常看到的 的主要卖点。

相反,我想向你介绍一些相当小但仍然很重要的功能,你只有在决定尝试 Go 之后才能了解到这些功能。

这些令人惊叹的特性没有浮于表面,它们可以为你节省大量的工作。它们还可以使软件开发更加愉快。

如果 对你来说是新事物,别担心。本文不需要任何 语言经验。如果你想了解更多,我已经在文章底部添加了一些额外的链接。

我们将会涉及以下主题:

GoDoc

静态代码分析

内置的测试和性能分析框架

竞争条件检测

学习曲线

反射

固定的代码风格

文化

请注意,列表不遵循任何特定的顺序。完全随意排序。

GoDoc

非常重视代码中的文档。在 中,文档也很容易添加。

是一个静态代码分析工具,可以直接从你的代码中创建出漂亮的文档页面。关于 的一个值得注意的事情是,它不使用任何额外的语言,就像 , 或 在代码中的注释结构一样。仅仅只使用英语。

它尽可能多的使用从代码中获取的信息,来构建文档的轮廓,结构化和格式化文档。它具有所有的花里胡哨的东西,比如交叉引用,代码示例和直接链接到版本控制系统库。

所有你能做的就是添加一个好的 注释,这也将会在文档中体现出来。你甚至可以添加代码示例,它可以通过 界面或在本地实际运行。

是整个社区使用的唯一的 文档引擎。这意味着用 编写的每个库或应用程序都具有相同的文档格式。从长远来看,它帮你节省了大量浏览这些文档的时间。

举个例子,这是我最近实现的示例项目的 页面:。

静态代码分析

重度依赖于静态代码分析。例如,包括用于文档的 ,用于代码格式化的 ,用于代码风格检查的 ,以及许多其他的例子。

有这么多的工具,甚至有一个叫 的项目,能够把所有的工具打包组合成一个单一的工具。

这些工具通常作为独立的命令行应用程序来实现,并可以轻松地集成到任何编码环境。

静态代码分析实际上并不是现代编程中的新东西,但是 把它用到了极致。我不能高估它为我节省了多少时间。另外,它会给你一种安全的感觉,好像有人在你的背后替你遮挡风雨。

创建自己的分析工具非常容易,因为 有专门的内置软件包可以用来解析和处理 源代码。

你可以从这个演讲中了解更多:.

内置的测试和性能分析框架

你有没有试过为一个从头开始的 项目选择一个测试框架?如果是这样,你可能会明白,经历这样一个分析瘫痪的斗争。你也许已经意识到你并没有使用你所选择框架的 。

一旦你需要做一些可靠的分析,这个问题就会重复出现。

提供了一个内置的测试工具,旨在简化和高效。它为你提供了最简单可用的,并做出了最小的假设。你可以将其用于不同类型的测试,分析,甚至提供可执行的代码示例。

它开箱即用,能够生成了 友好的输出,使用方法通常和运行 一样简单。当然,它也支持高级功能,如并行运行测试,标记跳过,等等。

竞争条件检测

你可能已经知道 ,它在 中用于实现并发代码执行。如果你还不了解它,这里有一个非常简短的解释。

在复杂的应用程序中进行并发编程并不容易,不管具体的技术如何,部分原因在于竞争条件的可能性。

简而言之,当多个并发操作以不可预知的顺序完成时,竞争条件就会发生。这可能会导致大量的错误,特别难以追查。有没有花了一天的时间去调试一个只能执行大约 情况的集成测试呢?这可能是一个竞争条件。

所有这一切表明,并发编程在 中非常受重视,幸运的是,我们有相当强大的工具来捕捉这些竞争条件。它被完全集成到 的工具链中。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180910G0UWUW00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动