# 大道至简

## 前言

作为一个版本控，咱向来是用新不用旧。一方面这直接导致咱大量的时间消耗在软件升级及适应新版本上，另一方面这也让咱拥有了相对丰富的软件升级的经验。

![](https://3646157530-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MdkzOhDc1Ym43IYRNrX%2Fuploads%2Fgit-blob-3b3ab0608d29d5a5f4d26dc422b4fe3b24956327%2FIMG_20210817_131418_366.jpg?alt=media)

在由各类软件“最新版本”、“开发版本”乃至于“不兼容替代品”搭建成的华丽但脆弱的扑克山上长期居住，个中辛酸，人生百味，不必多言。

就说说好的一面吧，咱已经实现了数据全面上云，并且掌握了熟练的数据恢复、系统重装、应用部署技术，除此之外还培养了较高的情绪控制力。

只要承载核心数据的微软 Onedrive 不出问题，软件 Bug 引发的数据丢失、软件损坏、系统崩溃，都是过眼云烟；物理层面的硬件损坏，不以介怀；哪怕是心理上的损害，也能自舐伤口。

这么多年的折腾，也该反思总结一下了。故开此篇谈一谈对于软件变革之道的认识。

{% hint style="info" %}
受限于个人能力 XD，文中图片均取自网络，侵删
{% endhint %}

## 何为变革？

### 概念

**变革就是引入了影响较大的不向后兼容更改的升级**。用语义化版本（Semantic Versioning）来具体说明，就是**引起主版本号变更的升级**。

![语义化版本（Semantic Versioning）](https://3646157530-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MdkzOhDc1Ym43IYRNrX%2Fuploads%2Fgit-blob-649c8a7d0308902959478abfcabd2d0a9f58a3fe%2Fimage.png?alt=media)

### 事例

* **编程语言**：Python2 -> Python3
* **网络协议**：IPv4 -> IPv6
* **操作系统**：Windwos -> Linux
* **管理框架**：iptables -> nftables
* **日常应用**：QQ -> 微信

## 作茧自缚还是化茧成蝶？

如果把软件升级的过程比作昆虫成长的过程，变革就相当于“变态发育”的环节。

在高速发展的现代信息化社会，海量的的电子数据在错综复杂的信道上光速汹涌，而支撑起这一切的网络架构，也在巨浪的澎湃下不断改变。在这样的时代背景下，每一秒都有胸怀改变世界之梦的同志发起软件变革，但现实是残忍的，绝大多数变革最终的结局仍是**作茧自缚**，仅有为数不多的变革能够**化茧成蝶**，一飞冲天。

![](https://3646157530-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MdkzOhDc1Ym43IYRNrX%2Fuploads%2Fgit-blob-af74a017f8046a65f3f6b892671e5d2813fee46e%2Fimage.png?alt=media)

那么，到底是什么撑起了这对能够引发飓风的翅膀呢？

> **“妙言至径，**<mark style="color:red;">**大道至简**</mark>**。”** ——《还金述》

## 为何简？

这就要从咱对于“**人类**”这个概念的理解谈起了。

对于自我的探求，恐怕从我们的祖先拥有思考能力的那一刹那就已经开始，而在近代，更是为此特化了一门名为“人类学”的学科。不妨先来看看教科书上是怎么写的：

> 能够使用语言、具有复杂的社会组织与科技发展的生物，尤其是他们能够建立团体与机构来达到互相支持与协助的目的。

很标准，但咱并不喜欢这种拗口又死板的定义，咱认为，应该再简化下，“**地球上的一种生物**”，仅此而已。

独拥智慧果实？早已有科学证明，猩猩也能达到人类幼体的智慧水平。

唯一社会体系？楼下蚂蚁第一个不服。

丰富情感能力？解释下你家宠物。

{% hint style="warning" %}
*以上内容仅为调侃，请勿当真 XD*
{% endhint %}

那么仅作为一个生物而谈，根据现有的理论共识，生物个体具有不可抗拒的生存本能，在此基础上，生物群体为了与概率抗争，演化出了扩张的本能。也就是群体会无限制追求更大的种群基数、更广的领地。

*作为万物之灵，人类在这方面可谓是再典型不过，不是吗？*

**扩张的本能是无限的，但现实中当前人类所接触的一切都是有限的**。面对无限与有限的矛盾，人类通过利用自己的特长，也就是高等智慧，很快就发现了“**效率**”的概念：

$$
效率=\frac{产出}{投入}
$$

那么为了追求无限大的扩张，人类就需要首先达到无限大的效率。而从等式不难看出，效率增长需要**更高的产出**和**更低的投入**。以批判式的用词对应到现实中人类的品质，其实也就是“**贪婪**”与“**懒惰**”。

$$
效率 \to +\infty \ \Downarrow \ 产出 \to +\infty \quad \And \quad 投入 \to -\infty
$$

{% hint style="warning" %}
或许是因为人类集体意识中自我否定的一面，在寻找合适的词语去描述人类的本质时，总是会归根于类似“七宗罪”的用词。但需要强调的是，咱也不想使用这种高度贬义的词汇，因为**咱并不认为这种本质是负面的**。
{% endhint %}

有了以上的展开，我们就可以继续对于“简”的讨论了。

## 何为简？

### 扁平化

### 低依赖
