DRY Often Makes Your Code Worse
DRY pode piorar seu código em vez de melhorá-lo.
Conteudo
TLDR;
Ao aplicar DRY superficialmente criando uma função genérica normalize_strings com flags e parâmetros para opções variadas, o código fica confuso com interações não óbvias e difícil de entender e manter.. DRY significa evitar duplicar conhecimento como regras de negócio, dados e lógica, não apenas mesclar código visualmente similar em uma única função.. A refatoração correta separa responsabilidades em funções específicas como is_valid_email para filtragem, normalize_email_address para normalização individual e list comprehensions para processar listas, tornando o código mais claro e simples.
Resumo
O vídeo apresenta um exemplo de código em Python para normalizar endereços de email e nomes de usuário, destacando duplicação inicial nas funções. Inicialmente, aplica-se o princípio DRY (Don't Repeat Yourself) de forma errada, criando uma função genérica normalize_strings com múltiplos parâmetros e flags (como remoção de espaços, minúsculas, símbolo @, prefixos e comprimento mínimo), o que elimina a duplicação superficial, mas torna o código confuso, difícil de entender e manter, com interações não óbvias entre opções. O autor critica essa abordagem, enfatizando que DRY visa evitar duplicação de conhecimento (lógica de negócios, regras), não apenas estruturas semelhantes como ifs e loops. Ele promove seu curso "Software Design Mastery", que aprofunda trade-offs em design, arquitetura e manutenibilidade. Na refatoração correta, foca-se em responsabilidades: separa validação (is_valid_email verifica @; is_valid_username checa comprimento ≥3) da normalização individual (normalize_email_address e normalize_username, removendo prefixos, espaços e convertendo para minúsculas). As funções principais usam list comprehensions para filtrar e normalizar listas, resultando em código simples, legível e sem duplicação real, mantendo o mesmo output. A lição: entenda o comportamento antes de aplicar princípios cegamente. (198 palavras)