秦始皇接手的是成品
前356年,商鞅第一次变法。废世卿世禄,二十等军功爵,平民在战场上砍下人头就能授爵。什伍连坐,轻罪重罚。前350年第二次,废井田开阡陌,推行县制,统一度量衡。
前348年,全境设三十一县。县令由秦王委派,直属朝廷,政权兵权一起收归中央。
这套东西装好快一百年,秦始皇才出生。他前247年即位,前238年亲政,接手的是成品。他干的事是用这台机器把六国碾过去,不是造机器。
吕不韦实际执政十二年,动过商君之法,让百姓纳粟千石拜爵一级,稳住财政。郑国渠修了十年,韩国派水工过来本是想耗秦国的国力,最后耗出一座粮仓。功劳簿上这几个名字,没几个人提。
夸秦始皇的人,夸的是执行力。制度写在别人名下,账没人算。
HTTP 也是这个路数。它无状态,两个成功请求之间互不相识,购物车根本做不出来。于是 Cookie 在标头里塞会话。MDN 自己写:HTTP「根本上无状态」,但「并非无会话」。这句读起来像在承认自己撒过谎。
1.0 默认每个请求开一条 TCP 连接,蠢得离谱。1.1 上流水线,括号里跟着一句「已被证明难以实现」。HTTP/2 拿帧的多路复用把它埋了。同源限制的放行能力,2010 年才加进标头。安全不是设计出来的,是后来堵的。
现在谁还说 HTTP 简单。标头成了垃圾桶,缓存、认证、代理隧道全往里塞。补丁长出脊柱,原来的协议躲在里面不认人。
有本书讲这个讲得干净:补丁不是无能,是权衡。接受需求时选择添加而不是重写,因为添加的成本看得见,重写的成本看不见。
问题在于它自己也快变成一条最佳实践了。同意的人点头,点完头照样加补丁。结构留下,人不动。
我看东西的时候老在算这笔账:东西是谁做的,代价是谁付的,功劳又被谁拿走。算完经常不痛快。
秦始皇那台机器好用,一直用到今天。写它的人死在封地之外,用它的那个被人叫千古一帝。
我不知道该说什么。反正账是这么记的。