掘友等级
获得徽章 0
少走30年弯路,直接进化成钓鱼佬。不懂就问,怎么提升钓鱼技术?感觉自己技术有点菜呀,鱼都不上钩。
终于将给的Demo跑起来了,2个痛点:
1. github连接有点慢
2. 为啥go run不行,go build就可以?go run会报错undefined: initRouter,go build就可以成功运行
之前是个java选手,现在0基础学习go,敲尼玛,跟着md文档跑个demo都差点被劝退。
进展有一点慢,刚刚把昨天的知识学习完:
1. 基础:变量、选择控制、循环语句、数组、切片、映射、函数、指针、结构体、错误处理、strings、fmt、json、time、数字解析、进程信息
2. 基础实战:
- 随机数生成
- 字典:http发送请求、json处理、缓冲流
- 代理:socket5、用nc命令测试
今天学习了并发编程和依赖管理:
1. Goroutine:用户态协程,KB级别,十分节约系统资源,仅需一个go关键字即可完成。
2. WaitGroup:等待这些协程全部执行完毕后,再结束主协程。
3. Lock:并发安全问题的解决方案
4. Channel:推荐使用这种方式进行协程间通信
5. 依赖管理的演变:GOPATH => Go Vendor => Go Module
6. Go Module方案:go.mod文件、go get/mod、依赖分发
学习了单元测试和go语言进阶实战:
1. 单元测试:assert、覆盖率
2. Mock测试
3. 基准测试
4. Gin的语法还不懂,但是MVC分层我懂
5. 获取topic信息以及获取post列表,这两个功能不冲突,可以开协程分开处理
1. 编程规约:代码格式、注释、命明、控制流程、异常处理
2. 通过基准测试调优:切片、映射、字符串、空结构体、atomic
3. 熟悉使用pprof
4. 通过pprof调优,具体业务具体分析,保证正确性
学习了pprof:
1. 总体指标:http://localhost:6060/debug/pprof
2. cpu:go tool pprof "http://localhost:6060/debug/pprof/profile?seconds=10"
3. heap:go tool pprof -http=:8080 "http://localhost:6060/debug/pprof/heap"
4. 协程:go tool pprof -http=:8080 "http://localhost:6060/debug/pprof/goroutine"
5. mutex:go tool pprof -http=:8080 "http://localhost:6060/debug/pprof/mutex"
6. block:go tool pprof -http=:8080 "http://localhost:6060/debug/pprof/block"
总结:pprof万能大法是top、list、web
HTTP框架修炼之道:
1. 走进HTTP协议:概念、请求流程
2. HTTP框架的设计与实现:分层设计
3. HTTP性能优化:网络库优化、针对协议优化
4. 企业实战
打开抖音会发生什么?
1. 网络接入:路由、ARP、IP、NAT
2. 网络传输:数据包、DNS、UDP、TCP、HTTP1.1
3. 抖音提质
将我的服务开放给用户:
1. 使用域名系统
2. 自建DNS服务器
3. HTTPS,SSL握手
4. 全站加速
5. 四层负载均衡
6. 七层负载均衡
下一页