一起学Golang系列(一)Go语言入门:起源、优势和应用场景

简介: Golang 越来越流行,国内的大厂开始全面拥抱 Go 语言,包括阿里巴巴、京东、今日头条、小米、滴滴、七牛云、360等明星公司, 也包括知乎、轻松筹、快手、探探、美图、猎豹移动等等。同时,创业公司也很喜欢 Go 语言,主要因为其入门快、程序库多、运行迅速,很适合快速构建互联网软件产品。

随着互联网的发展,国内的大厂开始全面拥抱 Go 语言,包括阿里巴巴、京东、今日头条、小米、滴滴、七牛云、360等互联网公司。这么多大厂开始使用 Go 语言,可以说, Go语言入门快、程序库多、运行迅速,很适合快速构建互联网软件产品。


当然,Go语言也有其不足之处,与 Java 相比,还很年轻,很多框架、库、包比较少,这也比较正常,毕竟生态还不健全。


综合来讲,Go语言旨在不损失应用程序性能的情况下降低代码的复杂性,具有“部署简单、并发性好、语言设计良好、执行性能好”等优势,目前国内诸多 IT 公司均已采用Go语言开发项目。


一、Go语言简介

Go语言(或 Golang)起源于 2007 年,并在 2009 年正式对外发布。Go 是非常年轻的一门语言,它的主要目标是“兼具 Python 等动态语言的开发速度和 C/C++ 等编译型语言的性能与安全性”。


Go语言是编程语言设计的又一次尝试,是对类C语言的重大改进,它不但能让你访问底层操作系统,还提供了强大的网络编程和并发编程支持。Go语言的用途众多,可以进行网络编程、系统编程、并发编程、分布式编程。


Go 从C语言继承了相似的表达式语法、控制流结构、基础数据类型、调用参数传值、指针等很多思想,还有C语言一直所看中的编译后机器码的运行效率以及和现有操作系统的无缝适配。


因为Go语言没有类和继承的概念,所以它和 Java 或 C++ 看起来并不相同。但是它通过接口(interface)的概念来实现多态性。Go语言有一个清晰易懂的轻量级类型系统,在类型之间也没有层级之说。因此可以说Go语言是一门混合型的语言。


作为一个开源项目,Go 语言借助开源社区的有生力量达到快速地发展,很多重要的开源项目都是使用Go语言开发的,其中包括 Docker、Go-Ethereum、Thrraform 和 Kubernetes。


二、Go语言优势

Golang 真的好用吗?它到底有哪些令人着迷的地方呢?带着这些问题,我们一起来看看Go语言到底都有哪些优势:


1.简单易学

Go语言的作者都有C的基因,Go 自然而然也有了 C 的基因,但是 Go 的语法比 C 还简单, 并且几乎支持大多数你在其他语言见过的特性:封装、继承、多态、反射等。


2.丰富的标准库

Go 目前已经内置了大量的库,特别是网络库非常强大前面说了作者是 C的作者,所以 Go 里面也可以直接包含c代码,利用现有的丰富的C库跨平台编译和部署Go 代码可直接编译成机器码,不依赖其他库,部署就是扔一个文件上去就完事了. 并且 Go 代码还可以做到跨平台编译。


3.内置强大的工具

Go 语言里面内置了很多工具链,最好的应该是 gofmt 工具,自动化格式化代码,能够让团队review 变得如此的简单,代码格式一模一样,想不一样都很困难。


4.性能优势

Go 极其地快。其性能与 C 或  C++ 相似。在我们的使用中,Go 一般比 Python 要快 30 倍左右。

语言层面支持并发,

这个就是Go最大的特色,天生的支持并发,可以充分的利用多核,很容易的使用并发。

内置runtime,支持垃圾回收。


三、适用场景

Go 语言提供了海量并行的支持,高度的抽象化和高性能。对于高性能分布式系统领域而言,Go 语言无疑比大多数其它语言有着更高的开发效率。非常适合复杂事件处理(CEP)。

  • 服务器编程,拥有提供了海量并发性能,非常适合游戏服务端,视频服务等。
  • 分布式系统,数据库代理,存储集群等
  • 基础服务,如:日志处理、数据打包、虚拟机处理、文件系统、内存数据库等中间件
  • 云平台,目前国外很多云平台在采用Go开发。


四、Go语言官网

Go语言的官方网站为:https://golang.org ,它提供了完善的参考文档,包括编程语言规范和标准库等诸多权威的帮助信息。同时也包含了如何编写更地道的Go程序的基本教程,还有各种各样的在线文本资源和视频资源。


五、吉祥物

Go语言有一个吉祥物,在会议、文档页面和博文中,大多会包含下图所示的 Go Gopher,这是才华横溢的插画家 Renee French 设计的,她也是 Go 设计者之一 Rob Pike 的妻子。

1-1PPQA9545W.jpg

最后

Go语言入门快、程序库多、运行迅速,很适合快速构建互联网软件产品。目前国内的大厂开始全面拥抱 Go 语言。建议大家学习好好学习Go这门语言。

相关文章
|
17天前
|
Go 开发工具
百炼-千问模型通过openai接口构建assistant 等 go语言
由于阿里百炼平台通义千问大模型没有完善的go语言兼容openapi示例,并且官方答复assistant是不兼容openapi sdk的。 实际使用中发现是能够支持的,所以自己写了一个demo test示例,给大家做一个参考。
|
18天前
|
程序员 Go
go语言中结构体(Struct)
go语言中结构体(Struct)
92 71
|
17天前
|
存储 Go 索引
go语言中的数组(Array)
go语言中的数组(Array)
100 67
|
18天前
|
存储 Go
go语言中映射
go语言中映射
32 11
|
9天前
|
Go 数据安全/隐私保护 UED
优化Go语言中的网络连接:设置代理超时参数
优化Go语言中的网络连接:设置代理超时参数
|
存储 JSON API
Go语言:RESTful API 服务,急速入门!
REST即表述性状态传递(英文:Representational State Transfer,简称REST),它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性
510 0
Go语言:RESTful API 服务,急速入门!
|
安全 编译器 Go
Go语言,Protobuf 入门详解!
Protobuf 是 Protocol Buffers 的简称,是一种与语言、平台无关,可扩展的序列化结构化数据的数据描述语言,Protobuf作为接口规范的描述语言,可以作为设计安全的跨语言PRC接口的基础工具。
356 0
Go语言,Protobuf 入门详解!
|
机器学习/深度学习 前端开发 Java
go语言可以做什么?入门Go语言
go语言可以做什么?入门Go语言
|
存储 IDE Java
go语言简单入门
go语言简单入门
181 0