为什么开始学习GO言语

目录

一、我为什么要学习GO语言?

1、接触了Go语言编写的程序

2、工作中遇到高并发的问题

二、Go语言有什么竞争优势?

1、Go语言开发速度更快、更容易,同时可以获得媲美C语言的高性能;

2、快速编译;

 3、自由高效:组合的思想、无侵入式的接口

4、拥有强大的标准库

5、 部署方便:二进制文件,Copy部署

6、并发简单


一、我为什么要学习GO语言?

1、接触了Go语言编写的程序

1年之内接触的两个新项目基础都是Go语言,一个是华为的kubeEdge项目,一个是联盟链(区块链的一种应用)。Go语言在这些新事物中的应用让我开始思考,学习Go语言的必要性;

2、工作中遇到高并发的问题

使用java不仅容易出错,而且学习相关的知识的时间成本非常高;而Go语言天生对高并发的良好支持让我看到应对“高并发”编程的简单、高效的办法;

总结:随着技术和项目经验的积累,我已经不满足于简单使用别人做好的框架或者API接口去实现一个应用性的功能,这在IT行业中本来就是比较低端的工种,只要勤奋、认真,什么行业的人2年时间都能干的不错,可替代性太强。如何让自己变成不可替代的人物?挑战高端的技术,完成核心的功能,开发新的框架,设计和制造“新轮子”,不能一直做装配工。

二、Go语言有什么竞争优势?

 

与C++比,go的开发效率高,具有清晰的依赖管理和全自动垃圾回收机制,代码量大幅减少。

与Java比,更简明的类型系统。

与php比,go在性能上占有明显优势,且通用性和规范性更好,更适合构建大型的软件。

与python比,go在性能上占有明显优势,因为解释型语言与编译型语言在运行速度上不可同日而语,另外go在语法简明和类型系统设计上优于python。

 我们都知道,java是面向对象的,在java的编程世界中一切都是对象,java在描述世界的时候采用的是继承机制,而继承机制不足以完全描述世界的本质,所以Java设计出面向切面编程和设计模式来补充它描述世界的能力。而Go语言不同,它对世界本质的理解是composition(组合),所以我们能够看到类似C语言的结构体。

Go语言的特点:

Go语言接受了函数式编程的一些想法,支持匿名函数与闭包。再如,Go语言接受了以Erlang语言为代表的面向消息编程思想,支持goroutine和通道,并推荐使用消息而不是共享内存来进行并发编程。总体来说,Go语言是一个非常现代化的语言,精小但非常强大。
Go 语言最主要的特性:

  • 自动垃圾回收 
  • 更丰富的内置类型 
  • 函数多返回值 
  • 错误处理 
  • 匿名函数和闭包 
  • 类型和接口 
  • 并发编程 
  • 反射 
  • 语言交互性

总结:

1、Go语言开发速度更快、更容易,同时可以获得媲美C语言的高性能;

2、快速编译;

 

 3、自由高效:组合的思想、无侵入式的接口


       Go语言可以说是开发效率和运行效率二者的完美融合,天生的并发编程支持。Go语言支持当前所有的编程范式,包括过程式编程、面向对象编程、面向接口编程、函数式编程。程序员们可以各取所需、自由组合、想怎么玩就怎么玩。

4、拥有强大的标准库

5、 部署方便:二进制文件,Copy部署

6、并发简单

并行和异步编程几乎无痛点。Go 语言的 Goroutine 和 Channel 这两个神器简直就是并发和异步编程的巨大福音。像 C、C++、Java、Python 和 JavaScript 这些语言的并发和异步方式太控制就比较复杂了,而且容易出错,而 Go 解决这个问题非常地优雅和流畅。这对于编程多年受尽并发和异步折磨的编程者来说,完全就是让人眼前一亮的感觉。Go 是一种非常高效的语言,高度支持并发性。Go是为大数据、微服务、并发而生的一种编程语言。
Go 作为一门语言致力于使事情简单化。它并未引入很多新概念,而是聚焦于打造一门简单的语言,它使用起来异常快速并且简单。其唯一的创新之处是 goroutines 和通道。Goroutines 是 Go 面向线程的轻量级方法,而通道是 goroutines 之间通信的优先方式。
创建 Goroutines 的成本很低,只需几千个字节的额外内存,正由于此,才使得同时运行数百个甚至数千个 goroutines 成为可能。可以借助通道实现 goroutines 之间的通信。Goroutines 以及基于通道的并发性方法使其非常容易使用所有可用的 CPU 内核,并处理并发的 IO。相较于 Python/Java,在一个 goroutine 上运行一个函数需要最小的代码。

三、如何学习Go语言

1、阅读Goolgle的开源项目;Go语言是Goolgle的儿子,其开源项目也最有代表性;

 

go语言值得学习的开源项目推荐 

谷歌官方维护了一个基于go语言的开源项目列表:
https://github.com/golang/go/wiki/Projects
 
其中有非常多的优秀项目值得学习,有几百行代码适合新手阅读的项目,也有大型如nsq、docker等的项目。
 
下面推荐几款适合学习的项目:
1、cache2go
https://github.com/muesli/cache2go
比较简单的一个缓存库,代码量很少,适合新手学习,可以学习到锁、goroutines等。
 
2、groupcache
https://github.com/golang/groupcache
与memcached同一作者,相当于是memcached的go语言实现。
 
3、nsq
https://github.com/bitly/nsq
消息分发平台,阅读代码可以了解到很多分布式、负载均衡等方面的编程。
 
4、docker
https://github.com/docker/docker
时下很火的项目,个人感觉适合应用,不适合入门阅读学习,待成为了高手后可以研究下其实现。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 下载安装Go语言的开发环境 Go语言的官方网站是golang.org,你可以在这里下载安装Go语言的开发环境。安装完毕后,可以在终端或命令行中输入go version来确认安装是否成功。 2. 学习Go语言的基础语法 学习一门编程语言,首先要掌握的是它的基础语法。可以通过阅读官方文档、教程、书籍等方式来学习Go语言的基础语法。建议先学习以下内容: - 变量和常量 - 数据类型 - 函数 - 控制结构(if/else、for、switch) - 数组和切片 - 结构体和指针 3. 编写第一个Go程序 在学习了Go语言的基础语法后,可以试着编写第一个Go程序。可以使用任何文本编辑器(如Notepad、Sublime Text、Visual Studio Code等)来编写代码。以下是一个简单的“Hello World”程序: ``` package main import "fmt" func main() { fmt.Println("Hello, world!") } ``` 将代码保存为hello.go,然后在终端或命令行中输入以下命令来运行程序: ``` go run hello.go ``` 如果一切顺利,终端或命令行中将会输出“Hello, world!”。 4. 继续深入学习Go语言 在学习了Go语言的基础语法和编写第一个程序后,可以继续深入学习Go语言的高级特性,比如: - 并发编程 - 接口和多态 - 包和模块化编程 - 错误处理 - JSON编码和解码 - 网络编程 可以阅读官方文档、书籍、博客等资源来学习这些高级特性。同时,建议多实践,写一些小项目或练习题来加深对Go语言的理解和掌握。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值