0

老孙Go语言学习笔记-第零章

 1 year ago
source link: https://sunqi.site/posts/old-sun-learning-go-notes-0/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

我为什么要学习Go?

  • 我司是从事基础架构、云原生工具类开发的,因为新产品方向的开发需要,需要引入Go语言来作为新的模块开发语言
  • 很多与基础架构有关的软件都使用了Go语言,像Docker、Kubernetes等
  • 可编译,跨平台,依赖少,执行速度快,之前使用Python时,模块依赖问题非常头疼,而Go语言可编译、依赖性少的特点非常适合我们未来的需求
  • 具备可编译语言的能力,但是在开发层面又设计简单,例如:接口、指针

该笔记参考了哪些文档?

主要参考了这些文档

该笔记对哪些人有帮助?

  • 因为我的需求是能够读懂和开发Go的项目,所以该笔记重视实战和应用,所以你想快速上手Go语言并进行开发,可以阅读本笔记
  • 对于高深的原理和底层逻辑,尽量用代码逻辑去解释或给出参考链接
  • 如果对于Go语言底层实现有兴趣的,推荐参考《Go语言设计与实现》

该笔记的架构

  • 本笔记大的架构还是参考了Learning Go,但是对于内容顺序部分略有调整和删减
  • 一、二、三、四章属于基础篇,主要是语言基础部分,
  • 第五、六、七章开始属于语言特性篇
  • 第八章属于应用与实战
  • 后续可能持续更新像代码规范、常见的Go框架、Go项目代码分析(restic,因为我需要研究该项目)等内容,敬请期待

Go语言发展历史

  • 英文的维基百科写的比较有意思,推荐阅读:https://en.wikipedia.org/wiki/Go_(programming_language)
  • 简单来说Go语言是2007年在Google内部设计出来,本意是提高在特定领域的开发效率
  • 由背景响当当的三位大牛设计,本着共同对C++的厌恶,设计了Go语言,简单来说就是取其精华去其糟粕
  • ,一般的资料没有给出他们的年龄,我这里特意查了一下,我想大家能看出我们和美国之间的软件行业的差距了吧
    • Ken Thompson(1943年)
    • Rob Pike(1956年)
    • Robert Griesemer(1964年)

Go语言应用情况

这是TIOBE给出的Go语言排名变化情况,可以看到Go语言爆发期是在2016到2017年之间,这两年应该也是容器领域最为活跃和火爆的两年。

/images/2022-06-12-06-48-23.png

Kubernetes贡献情况统计

/images/2022-06-12-06-48-38.png

这是docker/cli项目的贡献情况统计

/images/2022-06-12-06-48-53.png

从Github第四季度统计情况来看,Go语言在Pull Requests排名第5位,处于上升趋势。 /images/2022-06-12-06-49-07.png


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK