回炉重造(二)——函数(写好一个函数)

上一篇文章,我说了一个好函数的标准。这一篇,我来说说怎么写好一个函数。

首先,我要说得一点是,纯粹。纯粹非常重要。

想一下,如果让你一边吃饭,一边讲电话,那是怎样的体验。你会饭吃不好,电话那头的人,也是听的云里雾里的。那么这个时候,我们通常会怎样呢?我们会,要么跟电话那头人说,待会打过去,要么,起来到一旁把电话打完,再回来继续吃饭。虽然这个例子不是很好,但是却也能勉强表达我的一件。

就是,只做一件事。一个好的方法,不是要做很多事的“多面手”,而是,专注做一件事。

当然,要做到这一点,其实也不那么容易。那需要程序员弄明白,什么才叫“一件事”。因为很多时候,一件事,是有很多步骤的。

同样举个例子,“借书来看”,虽然只有4个字,但是,其实是包含了几个事情的。借书,看书,还书(接了得还,虽然没有明确说,但你也得还)。就这个“借书来看”,就可以分为3个方法:借书,看书,还书。那么借书该干什么,看书,该干什么,还书该干什么。

可能对于这个该干什么,有写同学,还是想不到。那我再细化一下,

先说借书:向谁借书?(个人,图书馆等),怎么借?(口头上说以下,还是要登记以下等)借多久?(时间期限)等

再说看书:什么时候看?看多久?(看书需要时间的)看多少?(多少章节多少页)等

最后再说还书:什么时候还?还书费用?(有些时候会有)还给谁等

我这样一说,是不是感觉,一个方法要干的事情也不少了。

那么假如,我们把这3个方法变成一个方法。那么这个方法,需要关注的点就有点多了,就是那面那些”?“号的总和。那么这个方法,想要维护和修改就会变得很麻烦了。

把一个多功能方法,分解为一个个单一功能的方法,一切就变得容易很多了。当然,最重要的,还是这个分解和概括的能力。这个需要不短时间的练习。

ok,纯粹这个,就到这里,至于其他的准则,我不需要说,你真的明白,并且做到这个纯粹之后,其他准则也就自然而然的会了。因为纯粹的方法,必然是短小精干的。要做到纯粹,方法参数,必然不会很多。

所以,加油吧。写纯粹的方法。上述我说得可以命名为一级纯粹(业务逻辑纯粹)。我现在在做二级纯粹(技术纯粹)。先引一下吧,二级纯粹,很多例子,比如okhttp,gson等优秀的三方框架,sdk。

下一篇,我准备讲注释。该不该写注释?大家可以猜一下。

你可能感兴趣的:(回炉重造(二)——函数(写好一个函数))