golang学习资料[Basic]

http://devs.cloudimmunity.com/gotchas-and-common-mistakes-in-go-golang/index.html

基础语法

《Go By Example》
《GO语言圣经》

  • 第一章:入门

    • Helloworld
    • 命令行参数
    • 查找重复的行
    • GIF动画
    • 获取URL
    • 并发获取多个URL
    • Web服务
  • 第二章:程序结构

    • 命名
    • 声明
    • 变量
    • 赋值
    • 类型
    • 包和文件
    • 作用域
  • 第三章:基础数据类型

    • 整数
    • 浮点数
    • 复数
    • 布尔型
    • 字符串
    • 常量
  • 第四章:复合数据类型

    • 数组
    • Slice(切片)
    • Map
    • 结构体
    • JSON
    • 文本和HTML
  • 第五章:函数

    • 函数声明
    • 递归
    • 多返回值
    • 错误
    • 函数值
    • 匿名函数
    • 可变参数
    • Deferred函数
    • Panic异常
    • Recover捕获异常
  • 第六章:方法

    • 方法声明
    • 基于指针对象的方法
    • 通过嵌入结构提来扩展类型
    • 方法值和方法表达式
    • 示例:Bit数组
    • 封装
  • 第七章:接口

    • 接口约定
    • 接口类型
    • 实现接口的条件
    • flaq.Value接口
    • 接口值
    • sort.interface接口
    • http.Handler接口
    • error接口
    • 示例:表达式求值
    • 类型断言
    • 基于类型断言区别错误类型
    • 通过类型断言询问行为
    • 类型开关
    • 示例:基于标记的XML解码
  • 第八章:Goroutines和Channels

    • Goroutines
    • 示例:并发的Clock服务
    • 示例:示例: 并发的Echo服务
    • Channels
    • 并发的循环
    • 示例: 并发的Web爬虫
    • 基于select的多路复用
    • 示例: 并发的字典遍历
    • 并发的退出
    • 示例:聊天服务
  • 第九章:基于共享变量的并发

    • 竞争条件
    • sync.Mutex互斥锁
    • sync.RWMutex读写锁
    • 内存同步
    • sync.Once初始化
    • 竞争条件检测
    • 示例: 并发的非阻塞缓存
    • Goroutines和线程
  • 第十章:包和工具

    • 包简介
    • 导入路径
    • 包声明
    • 导入声明
    • 包的匿名导入
    • 包和命名
    • 工具
  • 第十章:测试

    • go test
    • 测试函数
    • 测试覆盖率
    • 基准测试
    • 剖析
    • 示例函数
  • 第十二章:反射

    • 为何需要反射
    • reflect.Type和reflect.Value
    • Display递归打印
    • 示例: 编码S表达式
    • 通过reflect.Value修改值
    • 获取结构体字段标识
    • 显示一个类型的方法集
    • 几点忠告
  • 第十三章:底层编程

    • unsafe.Sizeof, Alignof 和 Offsetof
    • unsafe.Pointer
    • 示例: 深度相等判断
    • 通过cgo调用C代码
    • 几点忠告

网络编程

《Nettwork Programming》

  • 体系结构

    • 协议层
    • 网络
    • 网关
    • 数据包
    • 连接模型
    • 通信模型
    • 分布式通信模型
    • C/S系统
    • C/S应用
    • 分布式服务端
    • 通信Flow
    • 分布式组件
    • 中间件模型
    • 持久处理
    • 失败节点
    • Acceptance Factors
    • 透明性
    • 分布式计算的八个误区
  • Go语言概览

    • 类型
    • 多线程
    • 类型转换
    • 声明
    • GOPATH
    • 运行Go程序
    • 标准库
    • 错误值
  • 第三章:Socket级别编程

    • TCP/IP栈
    • 互联网地址
    • IP地址类型
    • 服务
    • TCP Socket
    • 控制TCP连接
    • UDP数据报
    • 监听多个Socket的服务
    • Conn, PacketConn, 和Listener 类型
    • 原始Socket和IPConn类型
  • 第四章:数据序列化

    • 结构化数据
    • 双方协定
    • 自描述数据
    • ASN.1
    • JSON
    • Gob包
    • 将二进制数据编码成字符串
    • Protocol Buffers
  • 第五章:应用级别协议

    • 协议设计
    • 你为什么应该担忧?
    • 版本控制
    • 消息格式
    • 数据格式
    • 一个简单的样例
    • 状态信息
  • 第六章:管理字符集和编码

    • 定义
    • ASCII
    • ISO 8859
    • Unicode
    • UTF-8,Go,和Runes
    • UTF-16和GO
    • Unicode Cotchas
    • ISO 8859 和 Go
    • 其他字符集和Go
  • 第七章:安全

    • ISO安全体系
    • 数据完整
    • 对称密钥加密
    • 公钥加密
    • X.509验证
  • 第八章:HTTP

    • URLs和资源
    • 简单用户代理(User Agent)
    • 配置HTTP请求
    • Client对象
    • 代理处理(proxy)
    • 通过Client进行HTTPS连接
    • 服务器
    • HTTPS
  • 第九章:模板

    • 插入对象值
    • 管道
    • 定义函数
    • 变量
    • 条件语句
    • HTML/Template包
  • 第十章:一个完整的Web服务器

    • 浏览网站的流程图
    • 浏览文件
    • 基础服务器
    • listFlashCards函数
    • manageFlashCards函数
    • 中国字典
    • Flashcards集合
    • 解决声调
    • ListWords函数
    • showFlashCards函数
    • 在浏览器上的展现
    • 运行这个服务器
  • 第十一章:HTML

    • Go语言的HTML/Template包
    • Tokenizing HTML
    • XHTML/HTML
    • JSON
  • 第十二章:XML

    • 解析XML
    • Unmarshalling XML
    • Marshalling XML
    • XHTML
    • HTML
  • 第十三章:

    • 远程进程调用
    • Go语言的RPC
    • JSON
  • 第十四章:REST

    • URIs和资源
    • 表现
    • REST 动词
    • 无状态
    • 应用状态引擎的超媒体(HATEOAS)
    • 链接表示
    • Transactions with REST
    • The Richardson Maturity Model
    • Flashcards Revisited
    • The Demultiplexer (Demuxer)
    • Content Negotiation
    • Handling Other URLs
    • The Complete Server
    • Client
    • 使用REST还是RPC
  • 第十五章:WebSocket

    • websocket服务器
    • The Go Sub-Repository Package
    • The Gorilla Package

语言技巧

《Go in Practice》

  • 第一部分:基础
    • 第一章:走进Go
      • Go是什么
      • Go中值得注意的地方
        • 多返回值
        • 现代标准库
        • Concurrency with goroutines and channels
        • Go工具链:不仅仅是一个编程语言
      • 众多语言中的Go
        • C和Go
        • Java和Go
        • Python、PHP和Go
        • Javascript、Node.js和Go
      • 开始运行Go
      • 你好,Go
    • 第二章:基础
      • 命令行程序
      • 处理配置
      • 现实世界的Web服务
    • 第三章:Go中的Concurrency
      • 理解Go的Concurrency模型
      • 使用goroutines
      • 使用channels
  • 第二部分:多彩的应用
    • 第四章:处理error和panic
      • Error处理
      • panic系统
    • 第五章:调试和测试
      • 定位bug
      • 日志
      • 访问栈追踪(stack trace)
      • 测试
      • 性能测试
  • 第三部分:应用接口
    • 第六章:HTML和Email模板
      • HTML模板
      • 为Email使用模板
    • 第七章:服务和接收资源和表单
      • 提供静态内容服务
      • 处理表单请求
    • 第八章:Web服务
      • REST APIs
      • 传递和处理HTTP error
      • 解析和映射JSON
      • API版本控制
  • 第四部分:应用云端部署
    • 第九章:使用云服务
      • 云集算是什么
      • 管理云服务
      • 云服务器上运行你的程序
    • 第十章:云服务之间的通信
      • 微服务和高可用
      • 服务间通信
    • 第十一章:反射和代码生成
      • 反射的三个特征
      • Structs、tags、和annotations
      • 通过Go代码生成Go代码

Web编程

https://www.gitbook.com/book/wizardforcel/build-web-application-with-golang/details
《Go Web Programming》

  • 第一部分:Go语言和Web应用
    • 第一章:Go语言和Web应用
      • 使用Go开发Web应用
      • Web应用是怎样工作
      • HTTP简介
      • Web应用的出现
      • HTTP请求(request)
      • HTTP响应(response)
      • URI
      • HTTP/2简介
      • 一个Web'应用的组成部分
      • 你好,Go
    • 第二章:Go实现ChitChat
      • 我们来聊天吧
      • 应用设计
      • 数据模型
      • 接收和处理请求
      • 通过模板生成HTML响应
      • 安装PostgreSQL
      • 数据库接口
      • 启动服务器
      • 组合封装起来
  • 第二部分:基础Web应用
    • 第三章:handling请求
      • Go的net/http库
      • Go服务
      • Handlers和handler函数
      • 使用HTTP/2
    • 第四章:processing请求
      • 请求和响应
      • HTML表单和Go
      • ResponseWriter
      • Cookies
    • 第五章:展现内容
      • 模板和模板引擎
      • Go语言模板引擎
      • 动作
      • 参数、变量和管道
      • 函数
      • 上下文语义
      • 嵌套模板
      • 使用block动作来定义模板
    • 第六章:存储数据
      • 内存存储
      • 文件存储
      • Go和SQL
      • Go和SQL 关系
      • Go关系映射器
  • 第三部分:现实世界
    • 第七章:Go Web服务
      • web服务简介
      • 基于SOAP的Web服务
      • 基于REST的Web服务
      • 使用Go解析和创建XML
      • 使用Go解析和创建JSON
      • 创建Go Web服务
    • 第八章:测试 你的应用
      • Go和测试
      • Go单元测试
      • Go HTTP测试
      • 测试重复和依赖注入
      • 第三方Go测试库
    • 第九章:使用Go的concurrency
      • concurrency不是并行
      • Goroutines
      • Channels
      • Web应用中使用Concurrency
    • 第十章:部署Go应用
      • 部署到服务器
      • 部署到Heroku
      • 部署到Google APP Engine
      • 部署到Docker
      • 不同部署方法的比较

选:分布式系统

MIT分布式系统课程

资源参考

posted @ 2017-09-12 23:52  Tacey Wong  阅读(565)  评论(0编辑  收藏  举报