代码梳理之道:目标驱动

Posted 信行合一

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了代码梳理之道:目标驱动相关的知识,希望对你有一定的参考价值。

很痛苦,很纠结

我们无论是在看别人代码,还是在研究源码的过程中都会面临一个基本的问题,那就是代码逻辑梳理,尤其是在代码比较复杂,或者是代码逻辑比较混乱的时候,问题更加明显。当我们梳理完这样的代码之后,我们的收获就是:

先不说代码那些框架里面的代码设计有很多,而且有的真的实现很复杂,不是一下子就能明白的。我们从最简单的入手:就说我们日常的代码维护和重构,因为这是我们平时遇到最多的情况了。

就我们工作中遇到的代码来说,80%-90%的代码是没有设计在里面的。基本上就是流水账,这种代码其实逻辑并不复杂,我们之所以觉得难懂原因在于我们的梳理方式本身可能就有问题。

一切都是代码:本末倒置,事倍功半

眼里只有代码,一个逻辑分支跟到底,看了也白看。因为我们眼里只有代码,只有符号。符号能有啥意义?所以我们就会越看越陌生,越看越不懂。尤其是那种分支比较多的逻辑,跳来跳去一会就蒙圈了。用这种思维方式去梳理的结果就是:剪不断理还乱。

一切都是目标:纲举目张,事半功倍

纲举目张的百科解释如下:

纲:渔网上的总绳;比喻事物的主干部分。目:网眼;比喻事物的从属部分。提起大绳子来,一个个网眼就都张开了。比喻抓住事物的关键;就可以带动其他环节。也比喻条理分明。

那么对于我们具体的代码梳理来说,纲和目又指的是什么呢?

纲:当前方法的目标

意思就是在我们看一个方法的过程中,我们首先要明白当前方法的整体目标,在弄明白当前方法目标之前不要去看当前方法中子方法的代码。因为如果不知道要去哪里,那么讨论怎么去有啥意义呢?看了只会徒增更多的困惑而已。

目:当前方法调用的子方法的目的

当我们明确了外层方法的目的之后,我们就明白每一行代码要达到一个什么样的目的,每一个具体的子方法不过是实现大目标中的一个小目标。

如果我们按照这种思维去梳理代码,那么我们面对的这些代码符号将不再是冷冰冰的符号了,而是一个个有大大小小的目的。从机器看来它们确实是一堆符号。但是在我们看来它们是一个个的目的,不同的目的实现不同的功能。它们是一堆有意义的代码。方法之间的来回跳动不再是我们理解的障碍,它不过是目的的封装。

之所以从代码角度去看代码效果很差是因为代码仅仅是一堆符号,它的表现力很差,所以很难让我们记住。更不要说一大堆代码之间跳来跳去了。而目标就有意义,所以记忆起来相对容易和深刻,几遍是跳来跳去我们也明白那不过是实现某些目标而已。

梳理代码如此,梳理人生也是如此。如果我们每天都活在生活的琐事中,
那么当我们某一天默然回首发现:忙忙碌碌了一生,啥意义也没有。
如果我们每天都活在一个一个目标达成之中,那么我们的人生就会变得很有意义。

以上是关于代码梳理之道:目标驱动的主要内容,如果未能解决你的问题,请参考以下文章

代码整洁之道理论篇

《领域驱动设计》读书笔记

架构整洁之道(架构篇)

架构整洁之道(架构篇)

如何通过 DDD(领域驱动设计) 降低软件开发的成本?

互联网的未来架构之道-DDD领域驱动设计