架构的本质

210 阅读2分钟

架构的本质就是让代码从无序变的有序,从熵增到熵减。

业务是会持续发展的,熵增是伴随业务发展出现的正常现象,不要期望一开始就设计出有序的架构,架构一定是通过重构的形式,对现有已经无序的代码进行拆分、拆分、再拆分,生成一个个不可拆分的最小的模块,再通过一定的模式进行有序的组织,最终形成一个有序的架构。

架构可以分成两个组成部分。

  • 模块拆分
  • 有序组织

合理的架构

如何判断当前代码是否是一个合理的架构?相同的代码,在不同的阶段得出的结论会有很大差距。

总的来说,代码能满足当前业务且是有序的,就是合理的架构。

阶段1

举个例子,你去摆摊卖小笼包。这时候,你的代码就是在家把包子做好了、摆摊、客户扫码付款、给客户包子。

这个流程下没有问题,是个合理的架构。

阶段2

卖了一段时间,你发现客户经常问有没有猪肉大葱包、香菇青菜包。这时候你就新增了这两款包子。但是问题来了,卖的时候,包子都放在了一起,没法区分了。

这时候可以上下划分,左右划分,分笼装等形式,来组织你的包子。这时候包子又变得有序了。

做了一个很简单的划分,就变成了一个合理的架构。

阶段3

因为包子味道好,你越做越大。摆摊换成了店铺。卖的东西也增加了烧卖、豆浆、糯米鸡等几十种产品。

你发现现在越来越无序了,因为客户量大,排队很久。产品太多,找东西耗时长,算账也麻烦。

这个时候,你有几个不同的架构方式。可以以顾客为导向,线上点餐付款,来店直接取货。也可以线下到店按照标准流程,点餐系统、扫付款码、按号取货。

最后,你两种方式都使用了。有个客户在线点餐,10 分钟后,到店直接取货。大家都夸你们的架构合理。

总结

一个最简单的流程也可能是最合理的架构。合理的架构形式是根据业务发展来的。

不管什么样的状态,我们能抓住的是,如何在当前业务下,使得代码是有序的,从而提高业务的效率。