两顶帽子

两顶帽子,说的是开发软件的时候,对重构和添加新功能这两种不同活动的区分。戴上不同的帽子就意味着要专心致志的做帽子所代表的事情。

重构是在不改变软件功能的情况下对软件内部结构的优化。为了保证重构只是在优化而不会引进新的BUG,重构的先决条件就是:所被优化的模块一定要有测试的保护。重构完毕以后换上另外一顶帽子,增加新功能,如果新的功能导致原有的测试失败,那我们可以确定这是由于所添加的新功能导致的。就像唱歌跳舞需要找到节奏一样,两顶帽子的灵活搭配,才能把代码写的又快又好。

可有很多时候,迫于时间的压力,很多人都不喜欢戴重构的帽子,对代码的重复,架构的死板,能忍则忍,忍了再忍。以为这样可以更快的完成任务,其实不然。一旦有重复代码的出现,就意味着,程序员犯错误的可能性会增加。首先,是因为每次做改动的时候,都要保证所有的重复处都要做出改动。其次,重复的要多,多以后优化的阻力就越大,如此一来,就进入了一个恶性循环,技术负债越来越多。

戴上重构的帽子,有利于改变这个状况。可有的时候,你给客户说,“别急,在增加新功能之前,让我先重构一下”。客户指定不买单,他付钱是为了要新功能的,而不是要你打磨老代码的。这时候唯一可以说服他们的论据,就是什么都不说,给结果就行了,他们指定喜欢又好又快的。所以,重构到底有没有用,一定得能在实际操作中表现出来。

戴好这两顶帽子,BUG会越做要少,新功能会越添越快,代码质量会越来越好。何乐而不为呢,偷着乐吧。