YAGNI (You Ain’t Gonna Need It)
Definição
O princípio YAGNI (You Ain’t Gonna Need It), ou “Você não vai precisar disso”, afirma que você não deve implementar algo até que ele seja realmente necessário.
Em vez de antecipar funcionalidades futuras que talvez nunca sejam usadas, o YAGNI orienta que se escreva apenas o que é necessário agora — e nada além disso.
Por que é importante
Implementar funcionalidades “por precaução” ou “para o futuro” geralmente leva a desperdício de tempo, aumento da complexidade e código difícil de manter.
Além disso, o sistema pode mudar de direção antes mesmo de a funcionalidade ser usada, tornando aquele esforço completamente inútil. O YAGNI ajuda a manter o foco no que traz valor real imediato.
Exemplo prático (Python)
Considere alguém implementando um sistema de cadastro de usuários e já adicionando lógica para múltiplos perfis, permissões complexas e integração com redes sociais — mesmo que nada disso seja necessário na primeira versão.
class Usuario:
def __init__(self, nome, email, permissao=None, perfil_social=None):
self.nome = nome
self.email = email
self.permissao = permissao # ainda não utilizado
self.perfil_social = perfil_social # ainda não utilizado
Esses campos extras aumentam a complexidade, exigem validação, documentação e testes — tudo isso sem necessidade imediata. Além disso, tendem a gerar dependências em outras partes do sistema, mesmo sem uma necessidade funcional real. Aplicando o YAGNI, o código inicial seria muito mais simples:
class Usuario:
def __init__(self, nome, email):
self.nome = nome
self.email = email
Funcionalidades só devem ser adicionadas quando houver um caso real e concreto para elas. Isso reduz o escopo, melhora o foco e mantém o sistema mais leve.