勒布朗(LeBlanc)法则

今天翻开Robert C.Martin著,韩磊译的《代码整洁之道》,在1.2 糟糕的代码一节中,有这么一段话。

我们都曾经瞟一眼自己亲手造成的混乱,决定弃之而不顾,走向新一天。我们都曾经看到自己的烂程序居然能运行,然后断言能运行的烂程序总比什么都没有强。我们曾经说过有朝一日再回头清理。当然,在那些日子里,我们都没听过勒布朗(LeBlanc)法则:稍后等于永不(Later equals never)。

看完这段话,我稍作停留,抬头看着地铁窗外。脑中想到的都是我自己曾经,甚至现在都处于这个法则中。

例如现在写的一个项目,每次需要添加一个新功能的时候或者需要修改一下其他代码的时候,总会发现这一段代码写的逻辑混乱,还得自己看个半天才能够明白自己写的是什么,按着常理说咱理应花点时间进行重构吧。问题是如果这段代码我现在的功能用不到,我就告诉自己等等,然后继续开发新的功能或者Fix Bug。想着等我把这些东西搞定之后,再来重构这段代码。只是当我看到自己的程序能够成功运行时,也就把重构的事情忘记了,那么该混乱的代码还是混乱的。

不仅仅是代码的,有时候开发项目,今天用一种方式实现的功能,等过一段时间后再次点开时就觉得原来实现的功能方式是不够完美的,而现在有一个更好的方式实现。只是现在手头还有其他功能需要去开发,然后就告诉自己等有时间了,一定会将这个功能重新实现一下。OK,等着我手头的功能完成了,人就变懒了,看点别的东西,借故休息一下,然后曾经信誓旦旦说需要修改的功能就再也没有下文。

类似的例子,我生活中也普遍存在着,例如今天一定要做某某事情,看某某书籍,如果由于各种原因没有开始的话,决定做的事情往往就被忘记了,只有等着某天突然想起的时候才回去动手,这虽然没有演变成永不,执行时间却被明显拖长。

现在知道这种行为有一个专用名词,希望以后能够时时记住这法则,然后让该做的事情能够尽快完成,而不让其成为永不。