码农视角下的中国史 · 卷一 | 夏到战国:一段屎山代码的崩溃史

jaded.chen
·
·
IPFS
如果中国历史是一段软件开发史,夏商周就是最原始的Demo,Bug全靠命补;春秋战国,是分布式系统彻底失控,百家争鸣变成架构师群吵架大会;最后,秦始皇,一个拍板重写的CTO,用最血腥的方式推倒重来,做了史上最疯狂的一次暴力重构。

你真要把中国历史当成一段开发史看,最早那几百年,纯属野蛮开发:没有版本控制,没有测试,出了Bug靠命补。你现在看历史书,夏商周这仨字挂在那儿,听着气派,其实就是一群人,在泥巴地里写脚本,能跑就谢天谢地,根本没想过代码维护。


夏朝算中国的第一个上线版本,大禹是那个项目经理。大禹治水是干啥?不就是在大洪水面前改Bug嘛,而且需求全靠口头,连个需求评审会都没有,靠大禹一个人顶着洪水撸代码。三过家门而不入?别浪漫化,那是被需求压疯的开发者典型状态:怕一回家VPN掉线,项目直接炸。你要知道,那时候迭代机制是“禅让制”,选贤任能,谁能压住版本冲突谁当PM,开源精神挺好,像Linux社区。结果大禹搞了个烂操作,把开源改闭源,写死“传子”的硬编码,搞成家族继承。这什么操作?就像一个CTO突然宣布:“以后公司职位全拼爹。”从那刻起,历史的Bug埋下了,后面多少崩溃,根子全在这行代码。


夏朝没留下多少注释,连日志都没有,能考的东西都是考古挖的碎片。能确定的就是:他们会冶铜,会制陶,能搭个低配的团队,干完散伙,像一个Demo项目,线上跑得磕磕绊绊,崩溃了连栈信息都没留,全靠后人猜Bug。


商朝就有意思了,气质完全不同。这帮人是那种极客狂魔型开发者,对日志上头。甲骨文是什么?别跟我扯浪漫,本质就是日志系统,记录事件,预测趋势,帮你回溯错误原因。调试方式更硬核:把甲骨加热,看裂纹方向决定上线还是回滚。裂得左边多,今晚别部署;裂得右边多,数据库要炸。这压测方法,你搁哪家公司敢用?商朝敢。

他们确实懂性能优化,青铜器就是当年的GPU加速卡,冶炼工艺卷到极致,武器、酒器全整明白。但他们有个核心Bug:业务逻辑围绕祭祀,玄学驱动开发。系统挂了,不复盘,不看监控,直接杀牛,数据库崩了?祭个人。你见过哪个SRE团队处理线上事故靠烧香?商朝玩明白了。

而且,安全感过剩容易飘。朝歌天天开趴,酒池肉林成了他们的架构师大会。今天大厂年会送iPhone,商朝送美女,送车马,还送你去陪王打LOL(他们的LOL是斗殴)。这种文化,你敢押宝它活过两个版本?果然,崩。


周朝接盘,思路比前任清醒,知道不能乱搞,得有制度工程,于是搞了分封制。听上去像现代分布式架构:中央核心服务(周天子),底下诸侯节点分布部署。理论上高可用、扩展性强,挂一个节点不影响全局。是不是像微服务?问题来了:周朝的微服务,没监控,没API网关,认证靠血缘Token。宗法制度就是最原始的OAuth,凭祖宗认证权限。问题是,这Token有生命周期,没人续签,周天子也懒得发新密钥。后期,非法请求横飞,接口冲突,权限滥用,整个系统安全形同虚设,春秋直接爆。


春秋是什么?就是系统频繁报警,节点掉线,性能抖动,日志还在写,礼乐那套繁琐流程就是他们的审计日志,可没人看,大家忙着干啥?Fork代码。

战国彻底雪崩:谁也不想Merge,谁也不想Review,版本冲突堆到天上。小国内存不足,直接被GC回收。晋国六卿搞架构拆分,像极了企业拆事业部,拆到最后互相恶性竞争,韩赵魏跑出来,三家分晋,妥妥的三家独角兽抢市场。

硬件革命来了:铁器普及=全民上SSD,性能飞跃,农业产能炸裂,线程数(人口)飙升,系统负载更恐怖。支付系统上线:货币经济来了,商业流动性暴增,战国的吞吐量,是夏商周做梦都不敢想的。城市化启动,数据中心(城池)密度暴涨,流量调度成大问题。


而且,这不是单纯的性能变化,架构撕逼才是戏肉。百家争鸣,你以为是书生清谈?不,那就是史上最激烈的技术选型大会。

儒家:兄弟们,冷静,先写接口文档,补测试,别瞎上线!

法家:规范?屁用!唯一标准是规则,所有提交必须最严Code Review,违规一行代码直接封仓,连夜开除。

道家:别修了,删库跑路,重启自然,Bug自己消失。

墨家:搞工具链!CI/CD先跑起来,流水线自动化才是生产力。

兵家:卷性能调优,天天在白板画调度算法,战争就是他们的压力测试。

纵横家:嘴炮天花板,能把Bug吹成Feature,还能说服VC再投两轮。

是不是熟悉?这不就是今天Java、Go、Rust架构师群?吵到最后,没结论,因为问题根本不在语言,而在架构烂透了,维护成本炸裂,用户体验(老百姓)一塌糊涂。


战国外交更好笑。合纵连横,本质是API联盟协议。纵横家就是API Broker,东拉西扯搞协议兼容,表面谈协作,底下偷参数。苏秦搞合纵=HTTPS加密联盟,张仪搞连横=双向认证,最后谁赢?都没赢,因为所有协议建立在Bug堆上的。

与此同时,商鞅在秦国搞了一波“敏捷开发+重构”。以前迭代慢,需求拍脑袋,秦国直接上重规则:分田制、军功爵,法治化,把权限写进配置文件,强制类型检查,所有开发行为严格追踪。结果,秦国性能一路飙升,成了史上第一个真正跑出高并发的节点。


你说战国最后那几十年,真的热闹到离谱。诸侯国之间开会,比今天开源社区大会还密集,表面上谈“互联互通”,底下都在想怎么偷接口,谁能把别人API搞崩谁就爽。合纵连横搞成什么样?东边刚组HTTPS联盟,西边立刻拉一票搞双向认证,你一旦松口,他们立刻发起DDoS。外交辞令就是代码注释,看起来风雅,实际上都是黑话,哪句不加锁,哪句埋死循环,全在里面。


而且你仔细想,百家争鸣那个画面——一帮人坐在案几上,嘴上讲仁义礼智信,骨子里卷得比任何技术群还狠。每个人都想当架构师,都觉得别人写的屎山不如自己那套哲学优雅。最后谁赢了?没人赢,赢的是秦国那个最狠的产品经理——一句话,别吵了,删库重构。


这事儿搁今天,你一定见过。一个烂到不行的老系统,维护团队每天开会扯皮,架构师群吵得天崩地裂,结果CTO来了:“别废话,推倒重来,三个月上线。”

秦始皇就是那个CTO。

他手里拿的不是PRD,而是刀。

他删的不是代码,而是人。

上线速度?业界传说。

风险管理?没有,出了问题只能杀程序员。

秦朝这个版本,上得漂亮,死得也漂亮。史上最经典的一次暴力重构。

等我下一卷,给你把这次重构的血腥细节扒干净。

CC BY-NC-ND 4.0 授权
已推荐到频道:时事・趋势

喜欢我的作品吗?别忘了给予支持与赞赏,让我知道在创作的路上有你陪伴,一起延续这份热忱!

logbook icon
jaded.chen大概率每天更新,除非那天生活太吵,我没听见我自己的声音。写字、编程、带娃交替进行中。。。
  • 选集
  • 来自作者
  • 相关推荐