Olá, Levi! Como vai?
O princípio KISS (Keep It Simple, Stupid) sugere que devemos manter as coisas simples e diretas. No entanto, como você observou, a simplicidade não deve comprometer a funcionalidade necessária de um programa.
No exemplo dado na aula, a versão "simplificada" de calcularIdadeSimples() é mais simples porque apenas subtrai o ano atual do ano de nascimento. No entanto, você está correto ao dizer que essa versão simplificada não leva em conta o mês de nascimento, o que pode resultar em uma idade imprecisa.
Aqui está um exemplo de como você poderia manter a simplicidade do código, mas ainda assim considerar o mês de nascimento:
function calcularIdade(dataNascimento: Date): number {
const agora = new Date();
let idade = agora.getFullYear() - dataNascimento.getFullYear();
const m = agora.getMonth() - dataNascimento.getMonth();
if (m < 0 || (m === 0 && agora.getDate() < dataNascimento.getDate())) {
idade--;
}
return idade;
}
Neste exemplo, ainda mantemos o código bastante simples, mas adicionamos uma verificação para o mês (e dia) de nascimento. Portanto, a simplicidade do código é mantida sem perder a precisão necessária para calcular a idade corretamente.
Lembre-se, o princípio KISS é uma diretriz, não uma regra rígida. Às vezes, é necessário adicionar um pouco de complexidade para atender aos requisitos do programa. O importante é evitar a complexidade desnecessária e manter o código o mais simples possível, sem sacrificar a funcionalidade necessária.
Grande abraço e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.