代码概览
源码地址: https://github.com/golang/time
在我看来,这块代码写的非常好,至少有三点非常值得我们学习:
- 对于令牌桶限流器的工作原理理解的非常通透,在充分理解的基础上,将原有的算法进行了简化。去掉了桶(实际上是个队列或者其他数据结构)的维护成本,优化为 (时间X速率) 的方法,现用现取,整体变得非常紧凑。
- 业务场景考虑的非常全面。速率和容量都有非常明确的边界,基础数据结构的抽象和组合也很恰当。提供的接口功能也非常完善,几乎没有废话。
- 注释很完整,学习起来很轻松。
2022/12/31大约 10 分钟