一秒不差的迷宫 书架

第 09 章 / 共 14 章

第九章 · 新宿站为什么是迷宫却不崩

上一章我们看着一列车从一家公司的轨道,一路开进另一家公司的隧道,中间不用换乘。那是"直通运转"——把好几家公司的线路在时间上缝成一条。这一章我们看的是同一件事在空间上的样子:好几家公司、好几条线,全挤在同一个地名底下,叠成一座楼。这座楼就是新宿站——被吉尼斯认证为世界最繁忙的车站,一天进出大约三百五十万人次。

新宿站有个绰号:迷宫。两百多个出口,上上下下好几层,JR、小田急、京王、东京Metro、都营五家公司的线在这里交叠。第一次来的人,经常在里面绕十分钟找不到出口。可就是这么一座迷宫,一天吞下三百多万人,不瘫、不踩踏、不回堵。这章想讲清楚两件反直觉的事:它为什么长成迷宫,和它为什么不崩——你会发现,这俩其实是同一枚硬币的两面。

迷宫是长出来的,不是画出来的

软件工程师看到"迷宫",第一反应往往是设计失败。但新宿站的乱不是设计出来的乱,是没被统一设计过的乱。

回想第2章:日本的铁路是一堆私营公司各自修的,不是国家画一张总图。新宿站也一样——一百多年里,JR(当年的国铁)先在这儿有站,然后京王来了在旁边修自己的站,小田急也来修,后来地铁挖到地下又叠一层,都营再叠一层。每家公司只管接好自己那一摊,接口能通就行。一百多年下来,一层压一层、一段接一段,谁也没停下来把整座站推倒重来、画一张干净的总图。

它不是一次盖好的,是几家公司各自在这里修站、加了一百多年、层层叠上去长出来的。所以"没有统一总图"是历史留下的,不是谁蠢。

这个东西软件工程师太熟了。一套跑了几十年的遗留系统(legacy,前人写的、没人敢大改、一直在用的老代码),多个团队各自迭代、加了几十年功能、没人做过一次统一重构——从外面调接口能用,钻进去看内部盘根错节、命名混乱、绕来绕去。新宿站就是一座水泥版的巨型遗留系统。迷宫感,是"多个主体 + 长期增量 + 没有统一重构"的必然副产品。它跟聪明不聪明无关,是这种生长方式一定会长成的样子。

它管的不是好看,是通行能力

那为什么它不崩?因为设计车站的人,优化的目标从来不是"让你好懂",而是另一个东西——

通行能力(throughput,单位时间能过多少人,等于一条路的"带宽")。一座巨型站真正的命题只有一个:每一秒,能不能把该过的人都放过去,不在任何一处堵住。好不好懂是次要的,别堵才是要命的。

怎么做到别堵?关键的一步,是把人流当流体来算。走廊是管道,人是水,闸机是阀门,楼梯是变窄的管段。一旦你这么看,交通工程里那套关于流量的直觉就全用得上了。

头号杀手是对冲

把水管里的水想象成两股对着冲——流量立刻掉下来,甚至互相锁死谁也过不去。人流一模一样:两股人对着走,是通行能力的头号杀手。一个人要往里、一个人要往外,在同一条窄道里错身,两个人都得减速、侧身、停顿,后面全跟着卡。

所以车站的第一招是单向流:让进站的人和出站的人尽量走不同的通道,上行下行分道。很多楼梯、通道被做成单向的——这一条只上、那一条只下。看着"绕",其实是拿空间换掉了对冲。你觉得路远了,但整条路的过人速度翻了倍。

瓶颈决定一切

一条路能过多少人,不由最宽的地方决定,由最窄的地方决定——回到那个木桶:装多少水看最短的那块板。管道再粗,中间掐细一段,整体流量就被那一段摁死了。车站里的瓶颈(整条路上通行能力最低的那一段)通常是楼梯口、检票口、窄通道。

所以设计车站,本质上是一件事:找到瓶颈,把瓶颈拓宽,别让它堵成回压。回压(backpressure)是说——某处堵住了,人退不动,队伍一直倒着排到上游,把前面本来通畅的地方也拖死。软件里限流、削峰是同一个词、同一件事。找瓶颈、拓宽瓶颈,是这门手艺的核心动作。

用缓冲和错峰削掉尖峰

光拓宽还不够,因为人流不是匀速的——一列车到站,几百上千人"哗"一下同时涌出来,是个尖峰。对付尖峰有两招:

标识就是带宽

最后一招最容易被忽略:指示牌也是通行能力的一部分。

想想一个人在楼梯口停下来,抬头找"我该往哪走"——他一停,后面的人全得绕他、等他,那一小块地方的流量瞬间掉下来。一个人驻留,就是一个临时瓶颈。乘一天几百万人,驻留是会要命的。

所以清晰的指示牌、颜色区分、线路编号、大字箭头,作用不只是"贴心"——它们是在让每个人不停下、不犹豫、保持移动寻路(wayfinding,靠标识让人不用问路就能走对)做得好,人流就不驻留;不驻留,通行能力就保住了。好的标识,本身就是在维持带宽。

迷宫和不崩,是同一枚硬币的两面

现在把两头接起来,那个反直觉的结论就出来了:

正因为它是好几家公司一百多年叠加出来的,所以它对是迷宫;又正因为每家公司和车站方都把人流当流体、死磕通行能力,所以它对人流极其友好。

空间上是迷宫,流量上是高速公路。这两件事不矛盾,它们说的根本是两个不同的对象:一个新来的人在里面会迷路(空间复杂),但每一秒钟海量的人能顺畅地过去(流量顺滑)。设计者优化的从来不是"好懂",是"别堵"——这两个目标经常连相关都不相关。

所以记住一句:巨型站真正的敌人是"对冲"和"驻留",不是"复杂"。复杂只是让你多走两分钟、心里骂两句;对冲和驻留才会让整座站在早高峰真的堵死、真的出人命。车站方把绝大部分力气都花在了消灭对冲、消灭驻留上,至于你觉不觉得像迷宫——那不在他们的目标函数里。

还有一层:正是因为它是多公司叠出来的,才更需要死磕通行能力。五家公司交汇,意味着换乘的人流在这里疯狂交叉、对冲的机会成倍增加——历史留下的复杂,逼着它必须在流量工程上做到极致,否则早就崩了。迷宫不是不崩的障碍,某种意义上,迷宫正是逼出"不崩"的原因。

不过,五家公司、一天三百多万人,每个人从哪进、从哪出、坐了谁家的几站,票钱到底该怎么在这几家之间分清楚、还得让你刷一下就过?那是另一套看不见的系统了——下一章讲那张卡:Suica,和它背后的清分。

一秒不差的迷宫 · 王建硕
费曼式写法 · 由多个 AI 代理撰写与互相审校