一、Duplicated Code(重复代码)函数
坏味道行列中首当其冲的就是重复代码。若是你在一个以上的地点看到相同的程序结构,那么能够确定:设法将它们合而为一,程序会变得更好。it
二、Long Method(过长函数)io
应该积极的分解函数,咱们遵循这样一条原则:每当感受须要用注释来讲明点说明的时候,咱们就把须要说明的东西写进一个独立函数中,并以其用途(而非实现手法)命名。咱们能够对一组甚至短短一行代码作这件事情。哪怕替换以后的函数调用动做比函数自身还长,只要函数名可以解释其用途,咱们也该坚决果断地那么作。关键不在于函数的长度,而在于“作什么”和“如何作”之间的语义距离。基础
如何肯定该提炼哪一段代码呢?一个很好的技巧是:寻找注释。他们一般能指出代码用途和实现手法之间的语义距离。若是代码前方有一行注释,就是在提醒你:能够将这段代码替换成一个函数,并且能够在注释的基础上给这个函数命名。就算只有一行代码,若是它须要以注释来讲明,那也值得jiagnta将它提炼到独立函数中去。循环
条件表达式和循环一般也是提炼的信号。可使用Decompose Conditional(分解条件表达式)处理条件表达式、至于循环,应该将循环和其内的代码提炼到一个独立函数中。技巧