1944 年 7 月的一个傍晚,如果你是驻守上海虹桥机场的调度员,听到无线电里报出「国航 1501,请求进近」,你其实什么也不知道——1944 年还没有航班号。但如果你身处今天的塔台,听到 CA1501 这个编号,你不查任何表,就能推出一串事实:这是国航的飞机,从北京基地出发向外飞,多半是个重要航线。这就是本章的主角:会说话的编号。
前几章里,编号要么追求唯一(UUID),要么追求层级(域名、IP)。但还有第三条路:把规律直接编码进号码本身,让内行看一眼就能推理,不用查表。航空和公路系统把这种思路用到了极致。
航班号:六位字符里藏着一张时刻表
拆开 CA1501。前两位 CA 是航空公司代码,由国际航空运输协会统一分配——中国国际航空是 CA,东航是 MU,南航是 CZ。这不难理解,本质上是第四章讲过的「层级下放」:协会只发两位字母,后面的数字归各公司自己编。
妙处全在后面的数字里。中国民航有个沿用多年的惯例:单数是去程,双数是回程。所谓去程,就是「从基地向外飞」。比如 MU508 是从香港飞回上海——东航的基地在上海,这是回家,所以用双数。一架飞机早上从基地出去(奇数号),晚上回来(偶数号),两个号码天然成对,调度员看到奇偶就知道这架飞机现在是「在外」还是「回家」。
数字大小也有讲究。传统上,位数越少、号码越靠前,航线越重要——国航的 1 字头多是旗舰国际线。这不只是虚荣心:短的号码在无线电里读起来快,在人工排班表上排得靠前,是一套「重要的事优先」的朴素设计。当然,这些只是惯例而非铁律,例外不少——你偶尔也能看到挂着奇数号往回飞的航班。编号会说话,但它说的是方言,不是法律。
翻译成人话:航班号像部队番号。番号里带着建制——一听「三连二排」,老兵就知道这是哪支部队、大概什么任务;外行听起来只是一串数字。
中国高速:G 字头背后的一整张地图
天上的编号说给调度员听,地上的编号要说给司机听——而且要在时速 120 公里、只有两三秒瞥一眼路牌的情况下说清楚。中国国家高速公路的编号,是这种极限场景下的杰作。
规则只有三条,背下来你就是内行:
- G 加一位数,是首都放射线。G1 京哈、G2 京沪、G3 京台……一直到 G7 京新(乌鲁木齐)。以北京为圆心,从东北方向开始按顺时针排号——G1 指向东北,G7 指向西北,你在哪条放射线上,看号就知道自己大致在北京的哪个方位。
- G 加两位奇数,是南北纵线;两位偶数,是东西横线。G15 沈海高速(沈阳—海口)纵贯中国东部海岸线,是奇数;G42 沪蓉高速(上海—成都)横贯东西,是偶数。纵线从东向西编号递增,横线从北向南递增。
- S 打头是省级高速,编号规则各省自定——这是层级下放又一次出现。
这套 2009 年推行的全国统一编号,改掉的是一笔老账:以前一条路跨省就改名,京石高速、石安高速、安新高速……一条北京到深圳的动脉能被切成十几个名字,司机完全无法建立「这条路通往哪里」的整体直觉。改名之后,G4 京港澳高速一个号码从北京直通香港口岸,编号把碎掉的路重新拼成了一张网。
美国州际公路:把规律写到个位数上
更早做这件事的是美国人。1956 年艾森豪威尔签署法案开建州际公路系统(Interstate System)时,顺手设计了一套至今堪称范本的编号:
- 奇数是南北向,从西向东递增——所以 I-5 贴着西海岸(圣地亚哥一路向北到加拿大),I-95 贴着东海岸(迈阿密到缅因)。
- 偶数是东西向,从南向北递增——I-10 在最南边(佛罗里达到加州),I-90 在最北边(西雅图到波士顿)。
- 个位数是 0 或 5 的,是横贯大陆的大动脉。I-5、I-95、I-10、I-80、I-90,全是国家级干线。
还有更精巧的一层:三位数的州际公路是「支线」,后两位标明它侍奉哪条主线。I-405 是 I-5 的支线(洛杉矶人听到「the 405」会露出痛苦的表情)。第一位数字还要区分功能:奇数开头表示扎进市区的支线,偶数开头表示绕城或环城路。一个老司机看到 I-280,不用地图就知道:这是 I-80 的一条环城线。
翻译成人话:这套编号像地球仪上的经纬网格被烙在了公路上。奇偶告诉你方向,大小告诉你位置,0 和 5 告诉你分量。号码本身就是一张缩略地图。
编号即文档
把三章串起来看:第二章说编号首先要唯一,第四章说放不下就分层级,本章说层级里的每一格都可以再塞进语义。会说话的编号有一个共同的好处:它把「使用说明书」压缩进了号码本身,系统的老用户——调度员、卡车司机、程序员——凭记忆就能推理,而不必每次查询权威数据库。这在大规模、高并发、人命关天的场景里,省下的不只是时间,还有出错的机会。
但它也有代价:语义是约定,约定会过时。航线会调整,城市会扩张,当年「从东向西递增」的整洁网格,几十年后总会被新修的支线戳出窟窿。好的编号系统必须为「未来的例外」留出余地——这个主题我们到第十章讲跨国银行编号时再算总账。
在此之前还有一个更基本的问题没解决:航班号会说话了,可人还是会抄错。值机柜台把 CA1501 听成 CA1507,一个字之差,行李就飞去了另一座城市。编号光是聪明还不够,它还得会自查——这就是下一章校验位的故事。