2017 年 Go 语言编程的五大关注点
创始人
2024-03-01 18:56:31
0

今年像动态插件,Serverless Go 以及 HTTP/2 这些创新对你的开发意味着什么?

Go 1.8 刚刚发布,它有几个新功能,包括:

这些新功能的影响力取决于你和开发团队如何使用 Go。 自从 Go 1.0 于 2012 年发布以来,其简单性、并发性和内置支持使其保持普及度不断增长,所以对“Go 擅长什么”的答案一直在增长。

这里我会提供一些想法,包括新到来的版本及 Go 世界最近其它吸引我的地方。这不是一个详尽的列表,所以请让我知道你认为在 2017 年 Go 还会发生哪些重要的事。

Go 的超级可部署性 + 插件 = 容器、任何东西?

1.8 版本已经发布,我已经与其中几个人交谈过添加动态插件会如何影响像容器之类的事物,动态插件是为了加载在编译时不是程序一部分的共享库的代码。 动态插件使容器中的高并发微服务变得更加简单。 你可以轻松地以外部进程的方式加载插件,同时具备在容器中微服务的所有好处:保护你的主进程不会崩溃,并且没有任何东西会搞乱你的内存空间。 对插件的动态支持应该是在 Go 中使用容器的福音。

关于专家现场 Go 培训,请注册 Go Beyond the Basics

跨平台支持仍在吸引开发人员

在 Go 开源之后的 7 年里,它已被全球采用。Daniel Whitenack 是一名数据科学家和工程师,他为 Jupyter 维护 Go 内核,告诉我最近他在西伯利亚做数据科学和 Go 语言培训,(是的,在西伯利亚!数据科学和 Go - 之后再细讲一下…)并 “很惊讶地看到那里 Go 社区是如此活跃和积极。” 人们继续在项目中采取 Go 的另一个很大的原因是交叉编译,对此,几个 Go 专家解释说这在 Go 1.5 版本中变得更容易了。来自其他语言(如 Python)的开发人员应该发现,在没有 VM 的目标平台上,能够为多个操作系统构建捆绑的、可部署的应用程序是在 Go 中工作的关键。

在 1.8 版本中对跨平台的支持,再加上提升了 15% 的编译速度,你就可以看到为什么 Go 是初创公司最喜欢的语言。

有兴趣了解 Go 的基础知识吗?查看 Go 基础学习路径 让 O’Reilly 专家来带你开始。

Go 解释器在开发中;再见 Read-Eval-Print-Loop

有一些聪明的家伙正在做一个 Go 解释器,我一定会持续关注它。如你所知的那样,有几个 Read-Eval-Print-Loop(REPL)的解决方案可以用来评估表达式,以确保代码如你预期的工作,但那些方法通常意味着容忍一些不便,或需要费力从几个方案中找到一个适合你的用例的。有一个健壮、一致的解释器就太好了,一旦我了解到更多消息,我会告诉你们。

在开发中使用 Go 复杂特性?观看 O’Reilly 的视频训练 中级 Go

Go 的 serverless - 会是什么样子?

是的,现在围绕 serverless 架构(功能即服务(FaaS))有很多炒作。但有时候也有些捉摸不定的地方,那么关于 Go 的 serverless 发生了什么?我们能在今年看到一个 Go 语言原生支持的 serverless 服务么?

AWS Lambda 是最知名的 serverless 提供商,不过 Google 最近也推出了 Google Cloud Functions。这两个 FaaS 解决方案使你可以在无须管理服务器的情况下运行代码,你的代码存储在别人为你管理的服务器集群上,并且仅在触发事件调用它时运行。AWS Lambda 目前支持 JavaScript、Python 和 Java,还可以启动 Go、Ruby 和 bash 进程。 Google Cloud Functions 只支持 JavaScript,但很可能不久将支持 Java 和 Python。许多物联网设备已经使用 serverless 方案,随着 Go 越来越多地被创业公司采用,serverless 似乎是一个可能的增长点,所以我在关注这些 serverless 解决方案中 Go 的开发情况。

已经有几个框架可以支持 AWS Lambdas:

  • λ Gordon - 使用 CloudFormation 创建、连接及部署 AWS Lambdas
  • Apex - 构建、部署及管理 AWS Lambda 函数
  • Sparta - AWS Lambda 微服务的 Go 框架

还有一个 AWS Lambda 替代品支持 Go:

  • Iron.io:建立在 Docker 和 Go 之上;语言未知;支持 Golang、Python、Ruby、PHP 和 .NET

有关 serverless 架构的更多信息,请观看 Mike Roberts 在旧金山 O’Reilly 软件架构会议上的演讲主题:serverless介绍

数据科学中的 Go

我在本文开头暗示了这一点:也许令人惊讶的是很多人都在使用 Go 进行数据科学和机器学习。关于它是否适合还有一些争论,但基于像 《Gopher 学院之 2016 年终》那样的年度文章中,你会注意到 30 篇文章中至少有 4 篇是关于机器学习或分布式数据处理,它们正在像我们走来。

我之前关于 Go 的易部署性的观点可能是数据科学家使用 Go 的一个关键原因:他们可以更轻松地在易读而可用于生产环境的应用程序中向他人展示数据模型。与此相结合的是 Go 的广泛使用(正如我前面提到的,它正变得越来越流行!),而且有数据专家创建“可用并且与其它程序配合”的程序。任何使用 Go 构建的应用数据科学家会在公司其他部分使用相同的语言,或者至少它非常适合现代架构。

更多关于 Go 的数据科学,Daniel Whitenack 写了一个很好的概述,解释了如何使用它: Data Science Gophers


作者简介:

O’Reilly Media 的监督编辑,与编辑团队合作,涵盖各种各样的编程主题。


via: https://medium.com/@sconant/5-things-to-watch-in-go-programming-in-2017-39cd7a7e58e3

作者:Susan Conant 译者:geekpi 校对:jasminepeng

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

“漂亮饭”占领三里屯
文|潮汐商业评论 听说三里屯新开了不少漂亮饭餐厅,生意很火,想坐...
2025-07-02 19:11:33
Google 这款免费 A...
在不久前结束的 Google I/O 上,Google 悄咪咪地在...
2025-06-16 07:41:52
谷歌突袭发布AI应用,无需...
本播客由扣子空间(coze.cn)一键生成 整理|冬梅 近日,据...
2025-06-02 16:42:20
Centos7 XFS(d...
在k8s的道路上我们都是小白,每天启动虚机都会遇到各...
2025-06-01 19:21:59
Golang每日一练(le...
目录 34. 查找元素首末位置 Find-first-and-la...
2025-06-01 07:25:54
【Java|golang】...
给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 n...
2025-06-01 01:57:50

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
什么是 KDE Connect... 什么是 KDE Connect?它的主要特性是什么?它应该如何安装?本文提供了基本的使用指南。科技日...
Opera 浏览器内置的 VP... 昨天我们报道过 Opera 浏览器内置了 VPN 服务,用户打开它可以防止他们的在线活动被窥视。不过...