'Função faz uma coisa' — o que isso quer dizer
Pergunta
O conselho 'uma função deve fazer uma coisa só' é comum. Como você sabe na prática que uma função está fazendo mais de uma coisa?
Resposta esperada
Sintomas: você não consegue nomear a função sem usar 'e' (`validarESalvar`); ela mistura níveis de abstração (uma linha de regra de negócio ao lado de uma manipulação de string crua); tem seções separadas por comentário ('// agora valida', '// agora persiste') que praticamente pedem pra virar funções; ou o teste precisa de muitos setups pra cobrir todos os caminhos. 'Uma coisa' não é uma contagem de linhas — é um nível de abstração coerente: a função conta uma história num nível só, e os detalhes de cada passo ficam em funções abaixo. O ganho é ler o fluxo de alto nível sem afogar em detalhe, e testar/reusar os passos isolados.
Por que perguntam isso
Pergunta pleno. Resposta forte foge da métrica de linhas e fala em 'nível de abstração' e nos sintomas concretos.