Docker最全教程之Go实战,墙裂推荐(十八)

与其他语言相比,Go非常值得推荐和学习,真香!为什么?主要是可以直接编译成机器代码(性能优越,体积非常小,可达10来M,见实践教程图片)而且设计良好,上手门槛低。本篇主要侧重于讲解了Go语言的优势,并且提供了一个推送钉钉消息的Demo。最后由于技痒,也编写了一个.NET Core的Demo,作为简单的对照(见下一篇)。

 

目录

 

Go

Go的优势

官方镜像

使用Go推送钉钉消息

了解钉钉机器人

定义消息类型

从环境变量获取参数

设置消息格式并发送请求

设置Dockerfile

运行并设置环境变量推送消息

 

Go

Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。在2016年,Go被软件评价公司TIOBE 选为“TIOBE2016 年最佳语言”。

和其他语言的规定相比,在Go中有几项不同的强制的规定,当不匹配以下规定时编译将会产生错误:

每行程序结束后不需要撰写分号(;)。

大括号({)不能够换行放置。

if判断式和for循环不需要以小括号包覆起来。

 

Go的优势

相比其他语言,Go语言主要有以下优势:

可直接编译成机器代码,不依赖其他库;

丰富的内置数据类型(error也是基本的数据类型)

语言层面支持并发;

设计良好(虽然不算优秀,但是恰到好处,特别实用)

支持垃圾回收;

规范(不规范直接编译报错,这点太生猛了)、简单、易学;

丰富的标准库;

跨平台编译;

性能相对强劲;

部署简单;

生态丰富

Go的性能强劲,但是又比C/C++的开发效率高(Go语言的开发者很多都是从C/C++转换过来的,上手几乎没门槛),维护成本更低,同时开发效率又不弱于Python等动态语言,而且还支持编译,可能减少很多低级错误。除此之外,Go还有个很大的优势,Go和.NET Core一样,讲的好听一点呢,就是出身名门、血统纯正,讲的不好听一点呢,都是富二代,都有一个好爹。

Docker最全教程之Go实战,墙裂推荐(十八)

我们的系列教程的主角Docker,就是基于Go语言编写。由于以上一些特性,Go特别适合云计算相关服务开发(关于这一点,大家可以关注各大云厂商的开源项目)、服务器编程、分布式系统、网络编程、内存数据库等等。

Docker最全教程之Go实战,墙裂推荐(十八)

 

 

官方镜像

官方镜像地址:

https://hub.docker.com/_/golang

由于爹好,所以官方文档比较详细:

Docker最全教程之Go实战,墙裂推荐(十八)

同样,我们可以使用docker images golang命令来查看相关镜像。这里值得注意的是,一般情况下,请使用带有alpine标签的golang镜像,因为体积更小。

Docker最全教程之Go实战,墙裂推荐(十八)

 

使用Go推送钉钉消息

接下来,我们使用Go编写一个简单的Demo:即通过钉钉机器人WebHooks推送消息到钉钉。

目前钉钉已经普遍应用于办公领域,通过对接钉钉机器人,我们可以将一些希望相关团队关注的信息推送到相应的钉钉群。

 

了解钉钉机器人

在开始之前,我们需要对钉钉机器人有个大致的了解:

https://open-doc.dingtalk.com/microapp/serverapi2/qf2nxq

这里我们是使用自定义机器人。当前自定义机器人支持文本 (text)、连接 (link)、markdown (markdown)、ActionCard、FeedCard消息类型,我们可以根据自己的使用场景选择合适的消息类型,达到最好的展示样式。例如我们用的比较多的是markdown类型:

Docker最全教程之Go实战,墙裂推荐(十八)

 

定义消息类型

我们暂且定义文本和markdown类型:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsszgd.html