Go并发编程实战

第一部分 Go语言的世界

第1章 初识Go语言
  • Go语言特性
    • 开源
    • 静态类型,语法趋于校本化
    • 卓越的跨平台无需移植代码
    • 垃圾回收
    • 原生并发模型Goroutine, Channel
    • 函数式编程范式
    • 无继承层次的轻量级面向对象编程范式,采用完全非侵入式的接口。避免了继承的复杂问题,层次更简洁。
    • 内含完善全面的软件工程工具。
    • 代码风格强制统一。。。。
    • 程序编译和运行速度都非常快
    • 标准库丰富
  • Go的优缺点
    • 相比C/C++,Go拥有清晰的依赖管理和全自动垃圾回收机制,因此代码量大大降低,开发效率大大提高
    • 相比java,有简明的类型系统,函数式编程范式先进的并发编程模型,因此代码更小更简洁可重用性更高,并在多核计算环境下更快运行
    • 相比PHP,Go具有通用性和规范性,适合构建大型软件,性能方面远远超越PHP
  • 缺点
    • 目前在分布式计算方面,Go的成熟度不及Erlang
    • 运行速度不及C,跟Java不相上下
    • 第三方库不及其他主流语言,Go还很年轻并在不断增长中
    • 语法方面,语法糖不多
    • 并发模型强大,但有些“坑”
    • 垃圾回收采用”并发标记清除算法ConcurrentMarkAndSweep CMS”,回收垃圾期间会停止所有用户程序操作,对实时性要求比较高的有影响
第2章 Go语言环境搭建
  • 工作区结构
    • src目录源码
    • pkg目录存放经由go install命令构建安装后的代码包.a归档
    • bin目录与pkg类似由Go命令生成可执行文件.exe后缀
  • 注意命令文件和源码文件的区别:命令文件就是声明属于main代码包,并包含无参数声明和结果声明的main函数的源码文件这里源码可独立运行(go run 命令),也可被go build或go install命令转换为可执行文件。而源码文件则是指存在于某个代码包中的普通源码文件。
  • 需要将工作区的目录路径添加到环境变量GOPATH中
  • go命令

第2部分 编程基础

第3章 词法与数据类型
  • 基本词法
  • p35