工程中的经典“意象”（一）：滑动窗口

在古诗文中，我们以月喻离合、以水比时光、以柳寄别恨。在软件工程中，我们以管道贯通有无、以缓存平峰谷、以协议定不变。前者我们称为 意象 ，《文心雕龙·神思》篇中写道：“独照之匠，窥意象而运斤”；后者我们叫做 隐喻 ，《代码大全》（Code Complete）中将隐喻视为一种启发式方法（heuristic），用以在抽象与具象之间架设桥梁。 我们如此习惯于意象和隐喻，是因为“人类思维本质上是隐喻性的”（出自莱考夫和约翰逊在《我们赖以生存的隐喻》）。其特点是，将一类场景相关的上下文传神地压缩进一个词语中。比之于精确的算法，它模糊但强大，所谓 “运用之妙，存乎一心”。 我想通过一系列小文来收集我在实践中反复看到的一些有趣意象，本篇来聊聊 滑动窗口 。 引子…