YAGNI

expressão

programação

Significa: You Aren't Gonna Need It

O princípio de que não se deve construir uma funcionalidade até que ela seja de fato necessária.

Pilar da Programação Extrema, o YAGNI combate a generalidade especulativa - os recursos e abstrações adicionados 'por via das dúvidas', que custam caro e raramente são usados. Construa para a necessidade real de hoje e deixe que os requisitos de amanhã, quando chegarem, guiem o código de amanhã.

Você não vai precisar disso é um princípio da programação extrema, e é uma afirmação sobre probabilidade e custo, não sobre ambição. A maioria das funcionalidades especulativas nunca é usada, cada uma delas precisa ser mantida e entendida por todos que lerem o código depois, e construir para requisitos imaginados em geral produz a abstração errada, porque o requisito, quando chega, não tem o formato que você supôs.

A economia é o argumento. Código que não é escrito não tem defeitos, não precisa de testes e não restringe o projeto futuro. Acrescentar uma funcionalidade depois, quando o requisito é real e específico, costuma ser mais barato que adaptar um mecanismo genérico construído sobre um palpite, e é sempre mais provável que sirva.

O limite honesto é que o YAGNI se aplica a funcionalidades, não a decisões estruturais. Não é argumento contra segurança, tratamento de erros ou escolher uma arquitetura capaz de acomodar crescimento, e é frequentemente usado como se fosse. Algumas decisões são genuinamente caras de reverter e, para essas, o instinto correto é o oposto: pense adiante. A habilidade é distinguir as duas, e o teste grosseiro é se a coisa é fácil de acrescentar depois ou precisa ser projetada desde o início.

Também conhecido como: You Aren't Gonna Need It, You Ain't Gonna Need It

Todos os verbetes do glossário