我的架构感悟:从美国宪法学习架构设计原则

开源社是由中国支持开源的企业,社区及个人所组织的一个开源联盟,旨在推广开源。 各成员按照“共治、共识、贡献”的原则自发设立。

文章正文

2017年1月20日注定是一个会在历史上留下记录的日子,美国第45任总统Donald Trump宣誓就职。他的就职宣誓词非常简短:

I do solemnly swear that I will faithfully execute the office of President of the United States, and will to the best of my ability, preserve, protect and defend the Constitution of the United States.

令人惊讶的是,自从1787年美国宪法在费城制宪会议通过以来,在宪法第二条第一款中规定的总统宣誓词,竟然历经230年,从未变化。

从一个架构师的角度来看:合众国宪法作为美国这个国家的基础架构,从发布到现在200多年,美国也从13个州发展成50个州,人口从380万增长到3.2亿,时代早已发生剧变,但是美国政治的核心架构基本未变,这个系统的运行状况堪称良好。当年那群“架构师”,实在是了不起。(虽然他们当年的底气相当不足,华盛顿认为,这部宪法能维持20年就不错了)

如果,我们想要设计出这样的一个架构,能够长期适应需求与环境变化,能够历久弥新并始终稳定可靠,那么了解一下美国宪法的制定过程,其实是一件非常有价值的事情。

重构都是被逼的

有几个时间点,现在看来,其实颇为令人诧异:1776年7月4日,美国以发布《独立宣言》为标志宣布独立。1783年9月3日英美签订《巴黎和约》,独立战争结束。但是一直到1787年9月15日,一众国父们才在费城签署了《美利坚合众国宪法》。也就是说:一个独立的国家,在运行了11年后,才有了自己的宪法!而且又过了2年,直到1789年这部宪法获得各州的批准之后,华盛顿才被依法选为第一任美国总统。

可以说,在长达13年的时间里,这个国家没有总统,没有中央政府,没有一点国家的样子。我们不禁要问一句:早干嘛去了?打仗期间忙不过来,尚且可以理解。战争结束之后的6年,他们在干嘛?

事实上,1777年11月19日大陆会议通过的《邦联条例》,可以算是这个国家的beta版架构。但在上线运行10年之后,实在是撑不住了。首要的问题,是因为钱,独立战争结束,各州拖欠了士兵数百万美元的军饷,同时还拖欠了一些欧洲国家的钱,但是,这个国家一穷二白没办法还钱(还记得技术债务吗?)。这个国家也没有全国性的货币体系,在不同的州,一美元的价值竟相差4倍!由此引发的,是很多人破产甚至被投入监狱。退伍士兵谢司领导了一场起义,兵力甚至高达1万5千人,虽然最后被镇压了。但是,整个国家都陷入了严重的恐慌,一个新兴的、刚刚独立的国家,是不是就要完蛋了?

用架构师的语言描述就是:一个临时性的架构勉强上线运行,如果再不做架构改造,推出新版本,这个系统就要彻底宕机了。虽然大家都不清楚新版本应该是什么样子,但是必须得有一个新版本了!然而当时的美国各州,都喜欢去中心化的、互不相干的分布式架构,对于可能出现的集中式架构,深感警惕。要他们商量出一个一致同意的新架构,将会异常艰难......

但是,另一个值得思考的问题是:拥有先见之明的天纵奇才、提前制定出明见万里、高瞻远瞩式的架构,真的靠谱吗?

显而易见的观点,可能并不正确

当时的欧洲,有很多人也在关注这次大会。按照欧洲人的看法:民主共和的政体,只适合于像瑞士那样的小国家。对于美国这么大的国家而言,只能是选择君主制。因此,那些美国人之所以要关起门来讨论,估计是在商量:到底是请哪一位君主到美国去当国王,会比较合适。更有好事者,连候选人都想好了:要么是普鲁士的亨利王子,要么是英国的弗雷德里克·奥古斯塔斯王子。

当时的美国人,有很多人抱着完全相反的另一种观点:不要有国王,甚至连中央政府都最好没有!他们之所以打了一场独立战争,就是为了从英国的统治下,解放出来。在获得了自己的独立、自由之后,他们立马就各回各家了。过自己的日子不挺好吗?为啥还要立宪?还要成立一个凌驾于各州之

作者正在撰写中...
隐藏内容 支付可见
内容互动
写评论
加载更多
评论文章
¥10 购买
× 订阅 Java 精选频道
¥ 元/月
订阅即可免费阅读所有精选内容