这就像团队里新来的一个毕业生,看着我们维护了十年的核心交易系统,里面有些代码风格老旧,用的还是几年前的框架,他撇撇嘴说:
这什么烂代码,性能这么差,耦合这么高,早该推倒重写了。
我一般不反驳,只是笑笑。
因为他只看到了表象,没看到这套看似笨重的系统背后,支撑着公司每天几百亿的流水,没经历过我们为了保证它99.999%的可用性,付出了多少心血,更不理解这套系统里面沉淀了多少业务逻辑和异常处理的know-how。
今天借着这个题目,我就用我们搞技术的人最习惯的系统工程视角,来剖析一下那个所谓的破铜烂铁,到底是什么。
我的观点很明确:
前三十年的工业化,不是一堆破铜烂铁。它是在近乎废墟之上,从零开始构建的一整套国家级工业操作系统加底层通信协议。
这个基础平台,是之后所有高层应用和商业生态得以运行的先决条件。
你现在看到的中国制造,所有那些光鲜的应用,比如高铁网络、移动支付、无人机集群、新能源汽车产业链,之所以能跑起来,不是因为它们是天才的凭空创造。
而是因为那个简陋、笨重,但在关键时刻绝对自主可控的底层操作系统,一直在稳定运行。
抽掉这个底层平台,上面的一切应用,都会立刻崩溃,系统会直接告诉你:核心依赖缺失,无法启动。
这篇回答会很长,也比较硬核,如果你只是想看个热闹,可能没什么意思。
但如果你想搞明白中国工业化的底层逻辑,建议你花点时间看完。这会帮你建立一个更深层次的认知框架。
一、项目启动前的需求分析:目标是生存,而非体验。
我们做任何一个项目,无论是开发一款软件,还是搭建一个数据中心,第一步永远是需求分析。
你必须搞清楚项目的核心目标,约束条件,以及交付标准。
脱离了这些谈架构的好坏,都是耍流`氓。
现在,我们把项目时间设定在1949年,来看看当时的项目需求文档。
项目的环境与约束条件:
一片焦土,战争刚结束,人均寿命35岁,超过八成的人不识字;钢产量只有15.8万吨,重工业几乎为零;外部是全面的技术封锁和军事包围。
这个启动环境,比我们接手的任何一个烂摊子项目都要差得多。
项目的预算:
基本为零。外汇储备枯竭,唯一的外部投资方苏联,提供的也是需要偿还的贷款,并且附带了大量的政治和技术条件。
项目的用户画像:
数亿刚从土地上解放出来,连基本工业常识都没有的农民。他们是这个庞大系统的第一代操作员。
项目的核心目标(KPI):
第一,保障系统最高级别的安全和独立运行。
也就是保障国家主权,不被外部力量轻易摧毁。
这是生存问题,是P0级别的任务,优先级最高。
第二,满足最基本的用户需求。
也就是解决几亿人的吃饭和穿衣问题,这是系统稳定运行的基本盘。
第三,构建一套独立自主,不依赖任何外部接口的工业体系。
这是项目的核心交付成果,关键词是独立自主和体系化。
好了,需求非常清晰。
如果你是这个史诗级项目的总架构师,你会怎么选择技术路线?
是集中所有资源,去攻关某一个单点技术,比如从国外高价买几台最先进的机床,仿制出几辆性能优异的汽车,然后向世界宣布我们也能造出好车了?
这种做法,短期效果拔群,宣传上很好看。但从系统架构的角度看,这是灾难。
机床的备件从哪来?维护保养谁来做?操作机床的高级技工哪里找?加工需要的特种合金谁来提供?
一旦外部环境变化,掐断你的供应,这几台昂贵的设备立刻就会变成真正的废铁。
这是典型的买办思维,把系统的核心能力构建在外部依赖之上。
当时中国的选择,是一条最艰难,最漫长,也是最扎实的路线:


