分层的好处 | 04/15

咕咚 于 2022-06-24 发布

在编写一段程序时,假如我们有一个比较复杂的操作,可能要编写 100 行代码才可以完成,这时我们可以有两种选择:

初看效果一样,都完成了目标,但是编程领域对于代码考核有一个重要的指标:可维护性。

现在如果考核这个指标,B方案,拆为 5 段的方案更占优。试想,如果是 A方案,后面这段 100 行代码交给别人去维护,维护者首先要去读代码,了解上下文,读 100行的成本明显高于 读 20 行的代码。

这里可以举个更现实的例子,比如公司里有一个比较复杂的职务,一直是一个人干,后来这个人意外离职了,所以只能把工作交接给其他人,那这个人的上手成本一定很高。

相反,如果这个比较复杂的职务,之前被领导经过优化,拆成了五个人干,每个人只关心自己的输入和输出,就像一个流水线,每个人的依赖关系很确定,那么这里面任何一个人离职了,新人只需要少量的交接就可以让这个系统运转起来。

回到正题,除了前面说的可维护性,还有衡量代码的另一个指标:可移植性。

这里举个例子,假如后面的开发中,有部分功能的实现需要那 100 行代码中的其中一部分,此时是没法直接复用这个已有模块的,只能拷贝代码。但是如果之前如果已经做了拆分,就可以快速复用其中的小块代码。

总之,复杂的事拆开做,一方面会降低难度,另一方面,可以做到结构清晰,能力复用,是更佳的选择。