此笔记仅用于个人学习了解,个别措辞有段落摘抄,会以引用的方式标识出来。
大部分为整理一些Golang资料,以此进一步了解Golang的语言特点,编程风格,适用场景等等

介绍

from: 「golang系列」浅谈Go语言 https://www.jianshu.com/p/91e40c3e3acb、 from: 维基百科 https://zh.wikipedia.org/wiki/Go

Go语言(也称为Golang)是google在2009年推出的一种编译型编程语言。相对于大多数语言,golang具有编写并发或网络交互简单、丰富的数据类型、编译快等特点,比较适合于高性能、高并发场景。

Go语言起源

from: http://shouce.jb51.net/gopl-zh/ch0/ch0-01.html go语言圣经

Golang - 图1

类C语言

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

CSP 顺序通信进程

  1. Go语言的另一支祖先,带来了Go语言区别其他语言的重要特性,灵感来自于贝尔实验室的[Tony Hoare](https://en.wikipedia.org/wiki/Tony_Hoare)于1978年发表的鲜为外界所知的关于并发研究的基础文献 _顺序通信进程_ ( _[communicating sequential processes](https://en.wikipedia.org/wiki/Communicating_sequential_processes)_ ,缩写为[CSP](https://en.wikipedia.org/wiki/Communicating_sequential_processes)。在[CSP](https://en.wikipedia.org/wiki/Communicating_sequential_processes)中,程序是一组中间没有共享状态的平行运行的处理过程,它们之间使用管道进行通信和控制同步。不过[Tony Hoare](https://en.wikipedia.org/wiki/Tony_Hoare)的[CSP](https://en.wikipedia.org/wiki/Communicating_sequential_processes)只是一个用于描述并发性基本概念的描述语言,并不是一个可以编写可执行程序的通用编程语言。

Go团队核心成员

https://zhuanlan.zhihu.com/p/75373075

  • Ken Thompson
  • Rob Pike
  • Robert Griesemerqe


Go的语言特点

from 知乎:谢孟军 为什么要使用 Go 语言?Go 语言的优势在哪里?

  • 编译型语言,且支持跨平台编译。
  • 强类型语言。
  • 语言层面支持并发。
  • 内置runtime,支持垃圾回收。
  • 简单易学,类c语言,只有25个关键字,语法糖适中。
  • 丰富的标准库,Go目前已经内置了大量的库,特别是网络库非常强大。
  • 内置强大的工具,比如 gofmt工具,利于团队统一代码风格。
  • 内嵌C支持,可以利用现有的丰富的C库。

Unix哲学

Golang - 图2

基于CSP的并发编程

接口以及OO特性

Uber Go编程规范

原文:https://github.com/uber-go/guide/blob/master/style.md
译文:https://github.com/Allenxuxu/uber-go-guide

Go的生态

工具链以及依赖包管理