Matheus Castiglioni

Princípio Dry

Uma situação um tanto quanto comum quando estamos trabalhando com desenvolvimento de software é quando uma única alteração exige que você saia mexendo e refatorando vários arquivos espalhados pela base de código.

Por exemplo: Você precisou alterar uma tabela para que as linhas da mesma fossem listradas, você precisou alterar o campo CEP para aceitar 10 caracteres em vez de 7 ou você precisa desconsiderar o timezone de uma data antes de salvá-la no banco de dados.

Todos os três exemplos são de contextos diferentes, o primeiro para front-end, o segundo para banco de dados e o último para back-end.

Desenvolvimento de software é um processo muito antigo, será que não existe uma forma da gente minimizar tais esforços? Sim, existe um princípio chamado DRY (Don’t repeat yourself, não se repita).

Conhecendo o princípio

O princípio DRY refere-se justamente em situações onde estamos repetindo códigos e visa remover ou no mínimo diminuir tais repetições. Vamos ver uma das N formas de como poderíamos resolver os três exemplos dados anteriormente:

Repare que agora os três exemplos iriam necessitar apenas um ponto de alteração e impacto na base de código quando mudanças ou evoluções incrementais fossem necessárias.

Desvantagens

Mas, nem tudo são flores, isso porque evitar repetição de códigos pode nos ajudar em uma característica, porém, pode prejudicar outra (ou outras).

Quando estamos falando de reaproveitamento, falamos de compartilhamento. Quando falamos de compartilhamento, falamos de acoplamento. Quando falamos de acoplamento, falamos de um único ponto de impacto.

Ou seja, quanto mais você compartilha, mais as coisas serão acopladas e mais comunicação será necessária quando uma mudança nesse único ponto de impacto for realizada.

Cabe a você encontrar o ponto de equilíbrio que faça sentido para seu projeto.

Conclusão

Nesse post vimos o princípio do desenvolvimento de software chamado DRY, que foca em diminuir a repetição de códigos.

Abraços, até a próxima.

Matheus Castiglioni

Matheus Castiglioni

Apaixonado pelo mundo dos códigos e um eterno estudante, gosto de aprender e saber um pouco de tudo, aquela curiosidade de saber como tudo funciona, tento compartilhar o máximo de conhecimentos adquiridos e ajudar todos aqueles que sou capaz.

comments powered by Disqus