开门见山,一睹golang的风采

  1. 性能优势
  2. 部署运维成本低
  3. 编码格式统一;测试简单

1. 性能优势

Go 语言被称为是:"21世纪的C语言",虽然这个帽子戴的有点高,不妨这里给大家解读一下,其实这句话有两层含义:

第一层含义是: Go 语言的语法和C语言类似,如果你会C语言,上手会很快。但如果你不会C语言,其实也不用担心,比起C语言, Go 语言上手其实很简单。

第二层含义是: Go 语言的性能, Go 语言内置强大的并发模型 goroutine,它能让我们快速开发高并发web系统,并且在同样服务器资源的情况下, Go 语言表现出来的性能也是相当的优秀,这也是推荐大家选择选择 Go 语言的原因之一。

 

2. 部署运维成本低

这是我选择 Go 语言的第二个原因。 Go 语言属于编译型语言,最终部署上线,我们只需要部署项目编译后的二进制文件即可,类比一下像 PHP 或 python 这种解释性语言在服务器上运行还需要安装相应的运行环境,而使用二进制代码方式使得部署变得更为简单,也不会存在多版本共享环境的兼容性问题,运维也变得非常容易。

3.1 编码格式统一

Go 语言官方内置了统一代码风格的工具 gofmt( IDE 一般都会内置集成), 用来规范大家代码风格,这对于需要多人协作项目尤为重要。

比如,现在你需要接手一个外包团队项目,这个外包项目如果项目的编码风格和你不一致,当你接手后,你的心情多半沮丧的,因为这会增加你的改造成本。

更或是,你现在需要接手一个由前前前同事所开发的老项目,如果代码风格不统一,可想而知接下来会发生什么...

Go 语言官方其实也是注意到了这些痛点,也避免了由第三方产生的规范不一致的问题,以官方的角度统一规范,从而降低整个项目的协作运维成本。

3.2 测试简单

Go 语言编写测试代码真的非常简单,这个特性真的是刚需啊。我们在项目开发中经常会遇到这样的事情,比如当你负责为项目负责开发一个独立的短信服务模块,这个功能供另个同事在项目里调用,当你开发完成后如何测试功能是否正常呢?

这种测试在 Go 语言中变得相当容易,你只需要在你代码文件同级目录创建一个以 _test.go 结尾的文件,然后在文件里编写针对特定功能测试函数即可,更重要的是,这个测试文件是可以单独运行的,你不需要再去集成整个项目运行环境, Go 语言让单元测试变得非常容易。

此外,我们经常还会做一些基准测试,比如:每种语言都会为字符串拼接提供多种实现方式,那不同的拼接性能如何对比测试呢?在 Go 语言里编写这种基准测试非常简单,至于更细节的实操内容,后面会有单独的章节介绍 Go 语言如何编写测试代码。

Go 语言生态

当下使用 Go 语言开发的软件产品非常众多,而且知名的产品也不再少数,足见这门语言的强大:

软件 描述 链接
docker 家喻户晓的容器技术 github.com/moby/moby
kubernetes 容器编排引擎,google出品 github.com/kubernetes/kubernetes
etcd 分布式服务注册发现系统 github.com/etcd-io/etcd
influxdb 时序数据库 github.com/influxdata/influxdb
grafana 数据监控可视化看板 github.com/grafana/grafana
prometheus 开源监控系统 github.com/prometheus/prometheus
consul 分布式服务发现系统 github.com/hashicorp/consul
nsq 亿级消息队列 github.com/nsqio/nsq
TiDB 分布式数据库, go + rust 打造 github.com/pingcap/tidb

除了上述表格中列举的产品外, Go 语言还涉足于像区块链、微服务等场景,开源的框架也非常多,所以说 Go 语言是一门值得去学习的语言。

简述GoLang优势与生态的更多相关文章

  1. 第一周-----Java 的核心优势和生态体系——程序员们希望他们编写的程序能够运行在不同的机器,不同的环境中,这需要一种体系中立的语言(即跨平台)。

    跨平台是Java 语言的核心优势,赶上最初互联网的发展,并随着互联网的发展而发展,建立了强大的生态体系,目前已覆盖IT各个行业的“第一大语言,称为IT界的英语”

  2. sync or async connect redis in golang

    Head of head 在golang的整个生态里,redis client lib全部都使用多连接或者连接池.这是让人难以理解的,所以我和xiaofei一起写了一个同时支持同步和异步的redis ...

  3. 选择 podman 的理由, 以及它和 Kubernetes , Docker 的区别

    转载自https://zhuanlan.zhihu.com/p/506265757 前言 大家好,我是 Liangdi, podman 4.x 版本已经发布了, 我也从 docker 开始向 podm ...

  4. 京东云、新浪微博等专家畅谈Docker未来格局:开放与竞争(下)

    在上次推送的文章中(传送门),田琪老师分享了他的DockerCon 2015峰会见闻.在“QCon高可用架构群”中,田老师分享之后,几位专家也参与了讨论.他们是: 闫国旗:京东资深架构师,京东架构技术 ...

  5. 从 PHP 到 Java

    * { color: #3e3e3e } body { font-family: "Helvetica Neue", Helvetica, "Hiragino Sans ...

  6. 甘果移动老甘:移动互联网变迁中的App和小程序

    2018 年 10 月13 日,由又拍云和知晓云联合主办的 Open Talk 丨2018 小程序开发者沙龙系列活动广州站拉开帷幕,甘果移动的 CEO 路文杰(老甘)在沙龙上做了<移动互联网变迁 ...

  7. linux --- 10.常见命令

    1.在登录Linux时,一个具有唯一进程ID号的shell将被调用,这个ID是什么()A.NID B.PID C.UID C.CID 2.下面那个用户存放用户密码信息()A./boot B./etc ...

  8. linux test

    some test .在登录Linux时,一个具有唯一进程ID号的shell将被调用,这个ID是什么(b) A.NID B.PID C.UID C.CID .下面那个用户存放用户密码信息(b) A./ ...

  9. Docker最全教程之使用Node.js搭建团队技术文档站(二十三)

    前言 各种编程语言均有其优势和生态,有兴趣的朋友完全可以涉猎多门语言.在平常的工作之中,也可以尝试选择相对适合的编程语言来完成相关的工作. 在团队技术文档站搭建这块,笔者尝试了许多框架,最终还是选择了 ...

  10. 百度艾尼ERNIE专场再入魔都,11月23日线下开讲!

    这个十一月,是属于深度学习开发者们的秋季盛宴.『WAVE Summit+』2019 深度学习开发者秋季峰会刚刚落下帷幕,基于ERNIE的语义理解工具套件也在此次峰会上全新发布,旨在为企业级开发者提供更 ...

随机推荐

  1. 后缀数组,SA

    主要是 \(O(n\log n)\) 倍增求 SA. (为什么这么短) const int N = 1e6 + 9; int n; int sa[N], sa_tmp[N], rk[N], ork[N ...

  2. 【论文解读】RLAIF基于人工智能反馈的强化学习

    [论文解读]RLAIF基于人工智能反馈的强化学习 一.简要介绍 人类反馈强化学习(RLHF)可以有效地将大型语言模型(LLM)与人类偏好对齐,但收集高质量的人类偏好标签是一个关键瓶颈.论文进行了一场R ...

  3. Eclipse中Java项目的导入和导出

    eclipse中项目的导出 当我们完成自己的java项目之后,我们可以将其打包发给别人,eclipse为我们提供了自动打包的功能. 之后单击finish即可.在你选择的导出位置便可以看到导出的压缩包: ...

  4. 【VMware VCF】使用 VCF Import Tool 将现有 vSphere 环境转换为管理域。

    VMware Cloud Foundation 5.2 发布并引入了一个新的功能,借助 VCF Import Tool 工具可以将现有 vSphere 环境直接转换(Convert)为管理工作负载域或 ...

  5. 利用 Page Visibility API 优化网页性能与用户体验

    在现代 Web 开发中,用户可能会频繁切换标签页,或让网页处于后台运行.为了避免不必要的资源浪费并提升用户体验,合理利用 Page Visibility API 可以在页面不可见时暂停或减少资源的消耗 ...

  6. CF1659 Codeforces Round #782 (Div. 2) 题解

    之前说过的题解,E应该不会补了(大概) A Red Versus Blue 题意非常简单,构造题.给定\(r\)个红色气球和\(b\)个蓝色气球,将它们排成一排,要求使得连续出现的最多的同色气球最少, ...

  7. PostgreSQL 15 新特性解读 | 墨天轮优质文章合集

    5月19日,PostgreSQL 全球开发组宣布 PostgreSQL 15 的第一个 beta 版本,这一新版本在开发者体验.性能表现等方面都有提升.为了帮助大家更快速了解到PostgreSQL 1 ...

  8. Nessus 安装 笔记

    Nessus 安装 笔记 根据 https://www.zwnblog.com/archives/nessus-jie-shao-yu-an-zhuang#2.kali%E5%AE%89%E8%A3% ...

  9. day15-三大基本结构

    顺序结构 Java的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行. 顺序结构是最简单的算法结构. 语句和语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组 ...

  10. Whizard:跨越 Thanos 从开源项目到生产就绪的鸿沟

    此文是根据 KubeSphere 在 KubeCon China 2024 上的演讲分享整理而成. 议题简介 作为最受欢迎和强大的 Prometheus 长期存储项目之一,Thanos 被社区广泛采用 ...