盘古开天地后为什么死了?
很久很久以前,天和地还没有分开,宇宙混沌一片。有个叫盘古的巨人,在这混沌之中,一直睡了一万八千年。
有一天,盘古突然醒了。他见周围一片漆黑,就抡起大斧头,朝眼前的黑暗猛劈过去。只听一声巨响,混沌一片的东西渐渐分开了。轻而清的东西,缓缓上升,变成了天;重而浊的东西,慢慢下降,变成了地。
天和地分开以后,盘古怕它们还会合在一起,就头顶着天,用脚使劲蹬着地。天每天升高一丈,盘古也随着越长越高。这样不知过多少年,天和地逐渐成形了,盘古也累得倒了下去。
盘古倒下后,他的身体发生了巨大的变化。他呼出的气息,变成了四季的风和飘动的云;他发出的声音,化作了隆隆的雷声。他的双眼变成了太阳和月亮;他的四肢,变成了大地上的东、西、南、北四极;他的肌肤,变成了辽阔的大地,他的血液,变成了奔流不息的江河,他的汗,变成了滋润万物的雨露……
你该不会以为盘古大神真是支撑天地累死的吧?
当然不会!盘古大神是什么人?这么可能这么简单累死……
其实根据鲁迅的研究,盘古大神另有死因……
研究表明盘古大神其实是银河集团的第一代世界架构师。在银河集团的某领导提出需要一个新的天地系统这个需求后,大神就开始了漫长的架构设计之路。
首先大神先整理了需求,并做了一个结构脑图,确定了大致结构以后,大神就开始确定各个结构的细节,并开始做选型:
内核?
(A) Funny Mud 双内核
(B) Dwayne 微内核
(C) Gravity 单内核外核?
(A) …
.
.
.
- 散逸层?
(A) Freedom 域外系统
(B) Kite 牵引系统
(C) Shield 防御系统
在做完各种调研、选型后,盘古大神顶着黑眼圈继续做更加详细的计划(选择题)……
终于在经过几千兆道选择后,大神终于定下了“我的世界 v1.0”的整个需求、开天计划。
于是,骨瘦如柴的大神开始了漫长的开天。然而事情并没有那么简单,即使事前做了那么多的计划,在开天过程中依然意外不断,新的想法、需求不断覆盖计划书。不得已,大神只能各种加班、福报……
在经过无数年的耕耘后,大神人到中年……“我的世界 v1.0”终于开天完成……大神马不停蹄的在银河云申请了一片外围空间,部署、上线“我的世界”系统……
然而,当大神赶到银河云申请到的天地的时候,身体终于支撑不住,猝死在了开天岗位上……他虽然身死,但意志依然残存,他将用自己最后的力量完成开天。他的身体发生了巨大的变化。他呼出的气息,变成了四季的风和飘动的云;他发出的声音,化作了隆隆的雷声。他的双眼变成了太阳和月亮;他的四肢,变成了大地上的东、西、南、北四极;他的肌肤,变成了辽阔的大地,他的血液,变成了奔流不息的江河,他的汗,变成了滋润万物的雨露……
一代大神终于还是离我们远去……
大神所在公司的那个领导在听说一个本公司的 35 万岁架构师猝死在工作岗位上后,立马知道了是以“选择题做太多,精神紧绷,心累”为请假理由的盘古大神,但是他当时急着出产品,于是拒绝给盘古大神放假。他担心这件事情影响到自己的晋升之路,于是开始买水军放出盘古大神是自己支撑天地死的……于是这件事情便只是上了几天头条就没有下文了……
不久后,大神的同事伏羲、女娲接管了盘古大神遗作“太阳系统”的后续工作。渐渐发现盘古大神的事情不是那么简单,终于在经过仔细勘察后,发现了大神的真正死因。然而,伏羲、女娲他们自知自己只是银河集团的普通员工,对方则是银河集团高管,胳膊拧不过大腿,所以,他们只能将事情的真相通过甲骨文记载起来,藏在昆仑山里,期待有后人能为大神讨个公道……
不难看出,盘古大神的死因就是他请假理由:要做的选择、权衡太多,精神负担大。
架构师与生俱来的使命就是不断的做出最合适的选择。
经过前人总结,选择的原则有很多共性,可以大致归纳为:
- 合适原则
- 简单原则
- 演化原则
合适原则
核心思想
合适优于业界领先
易错来源
技术人员的技术情节;总想挑战自己,想达到甚至优于业界领先水平(这样才能表现出自己的优秀…… KPI ↑↑↑)
主因
- 没那么多人,却想干那么多事
- 顾名思义,不用解释(好多小公司都有这毛病:啥都想要,人有我不可无 ┓( ´∀` )┏️)
- 没那么多积累,却想一步登天
- 绝大部分出色的项目,都是经过数年打磨、积累才出来的
- 没那么卓越的业务场景,却幻想灵光一闪,成为天才
- 大部分出色项目都是业务逼出来的,没有合适的项目处理业务,不得已才投入人力、无力做创新
不要总想着搞个大新闻 👓 👅 ☕️
简单原则
核心思想
简单优于复杂
易错来源
- 技术人员大部分是完美主义,总想把产品、架构做的更优雅、更通用、更叼(成就感 ↑↑↑)
- 低估了软件的复杂度;错误的把建筑、机械上的极致思想套用到软件里来
- 建筑、机械在古代同属于一脉,鲁班大师等人早已开始专研,底蕴深厚;现代建筑、机械,本质上并没有什么大不同,只是种类、样式变的更加多样,复杂度提升坡度不大
- 软件是新兴行业,本身积累不够,在历史角度来说,依然处于开荒阶段;本身的最大属性就在于变化,这种不确定性极大的提升了复杂度;通常软件的运行依托了机密的机械或且复杂的操作系统,不确定 * 不确定 = ?
主因
复杂度
- 组件越来越多
- 组件改动对系统的影响
- 定位问题时,复杂的系统总是难于简单系统
任何事务在达到一定的复杂度后,出问题的概率就会直线上升;建筑、机械的复杂度还在可控范围,所有最求极致、完美无可厚非;但很多软件的复杂度远比我们看上去的更加复杂,已经完全超过了许多建筑、机械;所有,把建筑、机械领域的很多想法按在软件上,本身就是一个极大的错误。
软件的未来发展应该追求降低复杂度,简单、稳固的基础才能构建出更加壮美的大厦。
演化原则
核心思想
演化优于一步到位
对于软件来说,变化才是永恒的主题
软件架构需要根据业务发展不断变化
易错来源
试图一步到位的设计一个软件架构,期望业务不论这么变化,架构都稳如磐石。
主因
心太大、想太多、飘了
生物进化与软件升级
阶段 | 生物进化 | 软件升级 |
---|---|---|
一 | 适应环境 | 设计出符合当前的架构 |
二 | 繁衍,剔除无用基因,传承有利基因 | 迭代版本,移除无用代码,保留优秀代码 |
三 | 快速适应环境变化,优胜劣汰 | 根据业务变化,扩展、重构架构,淘汰大部分过时部分,保留精华、经验 |
总结
因地制宜,因时制宜,脚踏实地,稳扎稳打
架构设计三原则;
合适原则最适合;
简单原则不简单;
演化原则需推进。