这里整理了一下我在学习Go语言过程中的笔记🚀
- betxin2
- tutorial67
- Golang笔记1
- Rust 笔记1
- 生产力工具1
- c1
- linux1
- notes7
- frontend1
- nextjs1
- record1
- rust5
- thinking48
- program1
- years1
- learn1
- value6
- privacy2
- time1
- develop2
- run1
- careers1
- web31
- golang1
Docker 快速入门你需要了解的一切...
你自己写代码经常会go run xxx.go
,但是如果一个仓库下有一个cmd
目录并且之下会有很多main
函数,那么你每次启动都会go run cmd/xxx.go xxxx
,这样做很ugly,有没有办法让启动程序更优雅美观一些呢?当然是有的,社区有很成熟的命令行库程序,例如今天我们来介绍的Cobra.
samber/lo 包提升我们代码中的迭代质量
github.com/samber/lo
是基于go1.18版本之后的Lodash的工具库,Lodash则是一个一致性、模块化、高性能的JavaScript实用工具库,用于提升开发者效率,提高原生JavaScript方法的性能,在业界赫赫有名。
lo 项目开始时作为一个有新泛型实现的实验,在某些方面可能看起来像Lodash。作者曾使用go-funk包进行编码,但go-funk使用反射(reflection),因此不是类型安全的,使用不当可能还会导致panic。
定时任务是我们经常使用到的库,Linux crontab 是用来定期执行程序的命令。
当我们写我们的后台服务时,使用限流器是非常有必要的,限流器可以帮助我们限制请求的速率,保护服务,避免服务过载等。
Golang 标准库中就自带了限流算法的实现golang.org/x/time/rate。该限流器是基于 Token Bucket(令牌桶) 实现的。
迭代器模式(Iterator Pattern)是一种行为型设计模式,它提供了一种顺序访问集合元素的方法,而不需要暴露集合的内部表示。
中介者模式是一种行为型设计模式,它定义了一个对象,用于封装一组对象之间的交互。中介者模式使得各个对象不需要显式地相互引用,从而降低了它们之间的耦合度。
命令模式(Command Pattern)是一种行为型设计模式,它将一个请求封装为一个对象,从而使你可以用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。
备忘录模式是一种行为型设计模式,它可以在不破坏对象的封装性的前提下,保存和恢复对象的内部状态。备忘录模式可以实现对象的撤销、回滚、恢复等功能。