实现部分也分三个阶段,首先从工作流程开始,可以通过 API 层面不断的下钻来了解它的工作流程。接下来是它整体的设计模式,通常对一些框架来说,如果能构建一个比较成熟的生态,一定是在设计模式上有一些独特的地方,使其有一个比较好的扩展性。最后是它的数据结构和算法,因为为了能够处理海量数据并达到高性能,它的数据结构和算法一定有独到之处。我们可以做些深入了解。
1. 获取 element 归属的 windows
2. 获取 element 对应的 key
3. 如果 late data,跳过
4. 将 element 存入 window state
5. 判断 element 是否触发 trigger
6. 获取 window state,注入 window function
7. 清除 window state
8. 注册 timer,到窗口结束时间清理 window