笔记三 | 青训营

49 阅读2分钟
  1. Go语言进阶与依赖管理

课堂重点

  • 重点 1 Waitgroup

    • Add(delta int) 计数器+delta
    • Done() 计数器-1
    • Wait() 阻塞直到计数器为0
  • 重点 2 Go依赖管理三要素

    • 配置文件,描述依赖 go.mod
    • 中心仓库管理依赖库 Proxy
    • 本地工具 go get/mod
  1. 高质量编程与性能调优实践

课堂重点

  • 重点 1 错误和异常处理
  1. 简单错误

    1. 优先使用errors.New创建匿名变量直接表示
    2. 如有格式化需求,使用fmt.Errorf
  2. 错误的Wrap和Unwrap

    1. 在 fmt.Errorf 中使用 %w 关键字将一个错误关联至错误链中
    2. errors.Is() 和 errors.As()
  3. recover(?)

  • 重点 2 性能优化建议
  1. atomic 包

    1. 锁通过操作系统实现,atomict通过硬件实现。atomic效率比锁高。
  1. 网络交互之网络传输

课堂重点

  • 重点 1 网络传输-UDP
  1. 发包每次发多少?怎么避免分片?
  2. 怎么知道没丢包?
  3. 怎么权衡传输效率和质量?
  • 重点 2 网络传输-TCP
  1. 什么是Timewait
  1. 认识存储与数据库

课堂重点

  • 重点 1 RAID技术
  1. 主流存储产品剖析

课堂重点

  • 重点 1 Linux文件系统的两大数据结构:Index Node & Directory Entry

Index Node 是一个文件的唯一标识 1:1,储存在磁盘

Directory Entry 内存结构(不会持久化到磁盘),与innode的关系是N:1

  • 重点 2 分布式存储=在单机存储基础上实现了分布式协议,涉及大量网络交互

    • 分布式文件系统HDFS:HDFS(Hadoop Distributed File System)是Hadoop核心组成之一,是分布式计算中数据存储管理的基础,被设计成适合运行在通用硬件上的分布式文件系统。HDFS架构中有两类节点,一类是NameNode,又叫“元数据节点”,另一类是DataNode,又叫“数据节点”,分别执行Master和Worker的具体任务。HDFS是一个(Master/Slave)体系结构,“一次写入,多次读取”。HDFS的设计思想:分而治之—将大文件、大批量文件分布式存放在大量独立的机器上。
    • 分布式对象存储: