面向加薪学习

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

01.Go-开篇综述

1.1 语言介绍

Go 语言由谷歌(Google)公司于 2009 年正式对外发布,设计 Go 语言的初衷都是为了满足 Google 公司的需求。主要目标是“兼具 Python 等动态语言的开发速度和 C/C++等编译型语言的性能与安全性”,旨在不损失应用程序性能的情况下降低代码的复杂性,具有“部署简单、并发性好、执行性能好”等优势。最主要还是为了并发而生,并发是基于goroutine的,goroutine类似于线程,但并非线程,可以将goroutine理解为一种轻量级线程。Go 语言运行时会参与调度goroutine,并将goroutine合理地分配到每个 CPU 中,最大限度地使用 CPU 性能。

1.2 作者介绍

y2snviYUp6grnjX2KiAMnQ

从左到右分别是 :

  • 罗伯特·格瑞史莫(Robert Griesemer): 曾为谷歌的 V8 JavaScript 引擎和 Chubby 开发代码

  • 罗勃·派克(Rob Pike): 罗布·派克是 Unix 的先驱,是贝尔实验室最早和 Ken Thompson 以及 Dennis M. Ritche 开发 Unix 的猛人,UTF-8 的设计人。还是 1980 年奥运会射箭的银牌得主。

  • 汤普逊(Ken Thompson): Ken Thompson 图灵奖得主,C 语言前身 B 语言的作者,Unix 的发明人之一, 操作系统 Plan 9 的主要作者。 共同开发了 UTF-8。

1.3 Go 语言特点

Go 语言,作为编程语言的后生,站在巨人的肩膀上,吸收了其他一些编程语言的特点。下面简单解释一下:

  1. 拥有编译器很方便

    自带编译器可以检测出你犯的所有低级错误,如:变量名拼错,不要小看这种问题,没有编译器情况下,很可能浪费掉很长时间去排查,并且非常不容易发现,而且Go语言也是跨平台编译的,你可以在 Mac 电脑上,编译出linux或者windows的目标程序。

  2. 开发速度

    Go 是一个非常简单的语言,上手容易,无论你是小白还是老鸟,都会比其他语言 C/C++ 和 Java 等语言要容易很多,这点在做项目中体现得尤其明显。很多人可能会说那 python 呢,php 呢?从语言上说 python 和 php 他们没有编译检查,同样也会像上面说的出一些小的低级错误,或者运行时错误,这都给 php 和 python 带来了隐患,所以 Go 语言虽然牺牲了一点点代码书写的时间,但是从项目运行安全角度来说,已经非常值得了。

  3. 天生高并发

    Go 语言就是为高并发而生的。当你需要使用并发场景,如果你有其他语言基础,第一反应是用到锁,但是 Go 语言提供了更加方便的方式协程+通道,在 Go 语言中代码不用修改就能直接多协程运行,只要在调用的时候加入 go 关键字,就可以了,非常方便。这与其他语言截然不同,你要考虑哪里开辟新的线程,哪里是代码执行逻辑。

  4. 部署简单

    Go 语言最终执行就是一个二进制文件,包括了它所依赖的程序包,这让开发者不用考虑部署环境的问题,例如,如果你是 java 程序,要考虑执行你的程序,对方机器是否安装了 java 的运行环境,其他语言同理,如果对方机器没有安装,无法运行你的程序,Go 语言可以在 Mac 和 Linux 上交叉编译你的代码,将其拷贝到远程服务器上,然后就可以任其运行了。

1.4 Go 语言能做什么

Go 的优点:实现快 + 资源占用低 + 任意环境随便跑,综合考虑在很多场景十分好用 。

  1. Go 适合造轮子,哪个库不好用就自己造。

  2. Go 适合写工具,比如 hugo 、hub,还有国人写的 linux 下的百度 pan client 都是 go 实现的。

  3. Go 适合实现 C/C++ 一部分业务,Java 的大部分业务。

  4. Go 适合做最外层的胶水,通过 RPC/REST/CGO 粘合不同语言的模块,而在这个胶水层还可以实现各种业务逻辑,又不用像 shell/python/node 有诸多顾虑和局限。

  5. Go 提供了协程、指针、 unsafe, cgo 加上 C/C++ 兼容的内存布局和跨平台的汇编,有了这些你能做很多事情了。

所以问题不是它适合做什么,是你有能力用它做什么。

1.5 哪些公司在使用 Go

这个问题之前 Go 的官方 wiki 里面有一个维护列表,大家可以点击下面地址看到:

https://github.com/golang/go/wiki/GoUsers

在 stackshare 里面可能更加直接的看到一些使用 Go 的国外企业列表:

  • Uber
  • Google
  • Pinterest
  • Shopify
  • Slack
  • ...

国内使用 Go 的企业也非常的多:

  • 腾讯
  • 阿里巴巴
  • 百度
  • 字节跳动
  • BiliBili
  • 小米
  • 163Cloud
  • PingCAP
  • 积梦智能
  • .....

posted on   面向加薪学习  阅读(77)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示