Personalmente, non ho paura dei lunghi metodi finché la persona che li scrive li scrive bene (ogni pezzo di sotto-task è separato da 2 newline e un bel commento precedente, ecc. Inoltre, l'identificazione è molto importante.). In effetti, molte volte li preferisco persino (ad esempio quando si scrive codice che fa le cose in un ordine specifico con logica sequenziale).
Inoltre, davvero non capisco perché rompere un metodo lungo in 100 pezzi migliorerà la leggibilità (come altri suggeriscono). Solo il contrario. Finirai per saltare da un capo all'altro e tieni alcuni pezzi di codice nella memoria solo per avere un quadro completo di ciò che sta accadendo nel tuo codice. Combina questo con la mancanza di commenti, nomi di funzioni errate, molti nomi di funzioni simili e hai la ricetta perfetta per il caos. Inoltre, si potrebbe andare dall'altra parte mentre si tenta di ridurre la dimensione dei metodi: per creare classi MANY e MOLTE funzioni ognuna delle quali può richiedere MOLTI parametri. Non penso che ciò migliori la leggibilità (specialmente per un mendicante di un progetto che non ha idea di cosa facciano ogni classe/metodo).
E la richiesta che "una funzione dovrebbe fare 'una cosa'" è molto soggettiva. 'Una cosa' potrebbe essere aumentare una variabile di uno fino a fare una tonnellata di lavoro presumibilmente per la 'stessa cosa'.
La mia regola è solo riutilizzabilità: Lo stesso codice non dovrebbe apparire molte volte in molti posti. Se questo è il caso, hai bisogno di una nuova funzione. Tutto il resto è solo un discorso filosofico. In una domanda di "perché rendi i tuoi metodi così grandi", rispondo, "perché non se il codice è semplice?".
(solo la mia opinione - voto basso quanto vuoi)