Método Longo.
Um método contém linhas de código demais. Em geral, qualquer método com mais de dez linhas deve começar a levantar suspeitas.
##Sinais e sintomas
Um método contém linhas de código demais. Em geral, qualquer método com mais de dez linhas deve começar a levantar suspeitas.

void checkout(Order order) {
double total = 0;
for (Item item : order.items) {
double line = item.price * item.qty;
if (item.qty > 10) line *= 0.9;
total += line;
}
if (order.coupon != null) total -= order.coupon.discount;
charge(order, tax(total));
ship(order);
email(order);
log(order);
}##Causas do problema
Como no Hotel California, sempre se acrescenta algo a um método, mas nunca se retira nada. Como é mais fácil escrever código do que lê-lo, esse “smell” passa despercebido até que o método se transforme em uma fera feia e descomunal.
Mentalmente, muitas vezes é mais difícil criar um novo método do que adicionar a um já existente: “Mas são só duas linhas, não faz sentido criar um método inteiro só para isso...” O que significa que mais uma linha é adicionada e depois outra, dando origem a um emaranhado de código espaguete.
##Tratamento
##Benefícios
-
Entre todos os tipos de código orientado a objetos, as classes com métodos curtos são as que sobrevivem por mais tempo. Quanto mais longo for um método ou função, mais difícil se torna entendê-lo e mantê-lo.
-
Além disso, métodos longos oferecem o esconderijo perfeito para código duplicado indesejado.

##Desempenho
Será que aumentar o número de métodos prejudica o desempenho, como muitos afirmam? Em quase todos os casos, o impacto é tão insignificante que nem vale a pena se preocupar com ele.
Além do mais, agora que você tem um código claro e compreensível, é mais provável que encontre formas realmente eficazes de reestruturar o código e obter ganhos reais de desempenho, caso isso venha a ser necessário.