童子军法则

原文链接

童子军里有条规矩:把你离开的营地打扫的比刚来时还要干净!如果你发现一块脏乱的地方,别抱怨谁弄的,把它清理干净。为了下次来访的野营者们你要刻意改善这里的环境。其实这出自侦察之父Robert Stephenson Smyth Baden-Powell(罗伯特·史蒂芬斯·史密斯·巴登-鲍威尔):“试着把这个世界变得比你发现它时更好一点”。

如何我们在代码世界也遵循类似的规则:签入一个模块时总是比签出的时候更干净。不管上次的代码时谁提交的,如果我们总能努力改善一些东西,哪怕只有一点点。结果会如何?

我认为如果我们都能遵循这个简单的规则,我们会看到软件系统不断恶化的情况将得到制止。同时,我们的系统将朝着越来越好的方向发展。我们也能看到团队更加在意系统的整体性,而不仅仅是他们个人负责的那一小块。

我不认为这个规则太长以至于要问的太多。你不需要把所有模块都做到完美在签入库中。你只需要做得比刚签出时好那么一点点。当然,这也意味着你添加到模块中的代码都必须保持干净。也就是说你必须整理至少一个地方再签回去。可能是完善一次变量名,又或者把一个冗长的函数切成两个小函数。你可能跳出了死循环,或者增加一个接口把策略从细节中剥离出来。

老实说,这个观点对我而言很普通——就好比上完厕所要洗手,或把垃圾丢到桶里而不是地上。确实,丢下一对脏乱差的代码走掉,从社交层面看也不可取。这会被视作工作未完成。

其实不止于此,关注自己的代码是一回事,关注团队其他人的代码是另一回事。团队互相帮助,互相彼此整理。遵循童子军法则,会让每个人受益,而不仅仅是个人。

0%