# Go语言从入门到实战 **Repository Path**: sadu_tqx/go_first ## Basic Information - **Project Name**: Go语言从入门到实战 - **Description**: go的入门学习深度理解 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-10-09 - **Last Updated**: 2023-08-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 学习视频地址:[[Go语言从入门到实战2019_哔哩哔哩_bilibili](https://www.bilibili.com/video/BV1sy4y1H7Cd/?vd_source=ee136cfb2d0a04d50f65098cbe5523ef)](https://www.bilibili.com/video/BV1sy4y1H7Cd/?p=2&spm_id_from=pageDriver&vd_source=ee136cfb2d0a04d50f65098cbe5523ef) # 1 变量、常量以及其它语言的区别(ch02) # 2 数据类型(ch03) - 不支持任何类型的隐式转换,不支持任何别名的隐式转换 - 指针不能运算 - string初始化为空字符串,不是nil # 3 运算符(ch04) - 注意数组的比较 - 按位清零运算符&^ # 4 条件和循环(ch05) - if支持两段式 - switch无需break,并且可以和if...else...一样使用 # 5 数组和切片(ch06) - 容量是否可以伸缩 - 是否可以进行比较 # 6 map的声明、元素访问以及遍历(ch07) # 7 map与工厂模式,在go语言中的实现set(ch08) # 8 string字符串(ch09) # 9 go语言的函数(ch10) - 函数的装饰器需要理解 # 10 defer和可变长度参数(ch11) # 11 行为的定义和实现(ch11) - 注意行为的定义的时候,带指针的不进行拷贝,推荐使用 12 Go语言接口的实现(ch11) - go中接口的实现是不依赖于接口的定义,采用的是鸭子类型 # 12 拓展和复用(ch12) # 13 不一样的接口类型,一样的多态(ch13) # 14 错误处理以及panic和recover(ch14) # 15 可复用的模块和包(ch15) # 16 协程机制(ch16) # 17 共享内存并发机制(ch17) - sync.mutex - sync.waitgroup # 18 CSP并发机制(ch18) # 19 多路选择机制与超时(ch19) # 20 channel的关闭与广播(ch20) - 发完数据需要关闭channel - 但不关闭通道时,会立即返回,并且返回通道的零值 - 在多订阅者的时候一定要记得关闭通道 # 20-1 任务的取消(ch20_1) # 20-2 context关联任务和子任务的取消(ch20_2) - 跟Context:通过cintext.Background()创建 - 子Context:context.WithCancel(parentContext)创建 - 当前的context被取消时,其他子context都会被取消 - 接收取消痛通知<-ctx.Done() # 21 只运行一次,单列模式(ch21) # 22 仅需任务完成和所有任务完成(ch22) - 通过buffer Chanel来实现任务只执行一次 # 23 对象池(ch23) # 24 sync.pool对象缓存(ch24) # 25 单元测试(ch25) # 26 Benchmen测试(ch26) # 27 BDD测试(ch27) # 28 反射编程(ch28) # 29 多能程序(ch29) # 30 安全编程(ch30) # 31 Pipe_Filter架构(ch31) - 适用于数据处理数据分析 # 32 实现micro kernel模式(ch32) # 33 内置json解析(ch33) - 内置的json解析由于运用的是反射,所以导致了速度较慢 # 34 EasyJson解析(ch34) # 35 http服务(ch35) # 36 restful服务(ch36) # 37 性能分析工具(ch37) # 38 避免锁的使用(ch38) # 39 GC需要注意(ch39) - 避免内存的分配和复制 # 40 字符串连接的四种方法对比(ch40) # 41 面向错误的设计(ch41) - 隔离 - micro kernel - 分布式部署 - 重用和隔离 - 逻辑结构重用&部署结构隔离 - 冗余(多个部署) - 单点失效 - 限流 - 慢响应 - 断路器 # 42 面向恢复的设计 - 健康检查 - 注意僵尸进程 - 池化资源耗尽 - 死锁 - 拒绝单体系统 - 面向错误的恢复的设计 - 在依赖服务不可用时,可以继续存活 - 快速启动 - 无状态 - 与客户端协商 # 43 chaos_engineering - 如果问题经常发生人们就会学习和思考解决它的方法 [github.com](https://github.com/Netflix/chaosmonkey) 分布式服务推荐项目:[GitHub - easierway/service_decorators: Simplify your microservice development](https://github.com/easierway/service_decorators) ![image-20221015160248781](image-20221015160248781.png)