项目实战一:设计实现一个支持各种算法的限流框架(分析)

90 | 项目实战一:设计实现一个支持各种算法的限流框架(分析) 结束了开源实战,从今天开始我们正式进入项目实战模块。在开源实战中,我带你一块剖析了几个著名的开源项目,比如Spring、MyBatis、GoogleGuava等,剖析了它们背后蕴含的设计思想、原则和模式。 ...

May 21, 2022 · 11 min

项目实战一:设计实现一个支持各种算法的限流框架(设计)

上一节课,我们介绍了限流框架产生的项目背景,并且对需求做了分析,这其中包括功能性需求和非功能性需求,算是在正式开始设计之前的一个铺垫。 前面提到,我们把项目实战分为分析、设计、实现三部分来讲解。其中,分析环节跟之前讲过的面向对象分析很相似,都是做需求的梳理。但是,项目实战中的设计和实现,跟面向对象设计和实现就不是一回事儿了。这里的“设计”指的是系统设计,主要是划分模块,对模块进行设计。这里的“实现”实际上等于面向对象设计加实现。因为我们前面讲到,面向对象设计与实现是聚焦在代码层面的,主要产出的是类的设计和实现。 ...

May 21, 2022 · 11 min

项目实战一:设计实现一个支持各种算法的限流框架(实现)

上一节课,我们介绍了如何通过合理的设计,来实现功能性需求的同时,满足易用、易扩展、灵活、低延迟、高容错等非功能性需求。在设计的过程中,我们也借鉴了之前讲过的一些开源项目的设计思想。比如,我们借鉴了Spring的低侵入松耦合、约定优于配置等设计思想,还借鉴了MyBatis通过MyBatis-Spring类库将框架的易用性做到极致等设计思路。 ...

May 21, 2022 · 14 min

用一篇文章带你了解专栏中用到的所有Java语法

加餐一 | 用一篇文章带你了解专栏中用到的所有Java语法 尽管说设计模式跟编程语言没有直接关系,但是,我们也无法完全脱离代码来讲设计模式。我本人熟悉的是Java语言,所以专栏中的代码示例我都是用Java语言来写的。考虑到有些同学并不熟悉Java语言,我今天用一篇文章介绍一下专栏中用到的Java语法。 ...

May 21, 2022 · 13 min

原型模式:如何最快速地clone一个HashMap散列表?

47 | 原型模式:如何最快速地clone一个HashMap散列表? 对于创建型模式,前面我们已经讲了单例模式、工厂模式、建造者模式,今天我们来讲最后一个:原型模式。 ...

May 21, 2022 · 15 min
总访问量 总访客数