Dev (Back & Front)ARTIGO

Refatorando os Dry’s

"Don’t repeat yourself", ou DRY é um conceito de desenvolvimento de software. Aprenda agora a refatorá-los.

“Don’t repeat yourself”, em português, seria algo como “não repita a si mesmo” ou também conhecido pelo acrônimo DRY. Este é um conceito de desenvolvimento de software que propõe que cada porção de conhecimento em um sistema deve possuir uma representação única, de autoridade e livre de ambiguidades em todo o sistema. Esta expressão foi cunhada por Andy Hunt e Dave Thomas em seu livro “The Pragmatic Programmer”. Ele se aplica amplamente, incluindo esquema de banco de dadosBanco de dados134 conteúdosSQL ou NoSQL: eis a questão!!Data · mar 2020Banco de dados: como organizar e dar segurança para milhões de dados de loteriasData · mai 20215 serviços gratuitos na cloud para bancos de dados PostgresData · fev 2025Ver tudo em Data , plano de teste, compilação e mesmo documentação de software. Se este conceito for aplicado, a modificação de uma parte do sistema não leva a modificações em outras partes não relacionadas. Adicionalmente, todos os elementos relacionados mudam de forma previsível e uniforme, mantendo-se, portanto, sincronizados.

Segue a linha de raciocínio básico para refatorar um dry:

Dry dentro de um método

Quanto acontecer blocos de códigos repetitivos dentro de um mesmo método, você refatora o dry em uma closure na primeira vez que o bloco acontecer e reusa invocação da closure para as próximas chamadas.

Dry dentro da uma classe

Quanto acontecer blocos de códigos repetitivos dentro de uma mesma classe, em diferentes métodos, você refatora o dry em um método privado, nomeando de acordo e reusa fazendo a invocação desse métodos em todos os outros.

Dry em várias classes

Quanto acontecer blocos de códigos repetitivos dentro de várias classes, você refatora o dry em uma classe especializada, nomeando adequadamente, de acordo com a situação. Ela pode a vir a ser uma simples classe estática utilitária ou até uma classe de instância, dentro dos blocos de construções de sua arquitetura, tudo dependendo da interpretação do projetista.

Ciclo TDDTestes automatizados4 conteúdosComo migrei meus testes automatizados de Java para Ruby… Será que fiz bem?Dev (Back & Front) · jun 2019TDD em Nodejs: conhecendo o JestDev (Back & Front) · mar 2019Arquitetura Hexagonal na prática com exemplos em PythonDev (Back & Front) · mai 2025Ver tudo em Dev (Back & Front)

Seguindo a ciclo básico do TDD, deixe o dry acontecer no código sem preocupação. Seja feliz por alguns momentos, copiando e colando aquele bloco de código repetitivo. Depois que você estiver no estágio de barra verde, com os testes em dia e tudo funcionando, é que você então vai para a fase de refatoração, auditando o que foi programado, aplicando essa sequência de passos.

É graduado e pós-graduado em Engenharia de Software, há mais de 15 anos desempenhando atividades de gestão, consultoria e treinamentos no desenvolvimento de soluções corporativas desktop, web e mobile com a plataforma Java e metodologias Ágeis. Possui mais de 30 certificações em Java, engenharia de software e metodologias ágeis.

Ver perfil