Módulos
A abstração que evita a cópia, ou a que prende você.
Módulos reutilizáveis e quando evitá-los
Um módulo quase sempre é criado cedo demais. O cenário é constante: é preciso uma segunda fila de mensagens, você nota que o bloco se parece com o primeiro e o extrai para um módulo "para o futuro". Seis meses depois, o módulo tem onze variáveis booleanas, três count = var.enable_x ? 1 : 0, e ninguém ousa mexer nele porque é chamado por quatro projetos, dois dos quais dependem de um comportamento que o terceiro considera um bug. A abstração que deveria reduzir a duplicação produziu um componente mais difícil de ler do que as quatro cópias que ela substitui.
O problema não são os módulos, é o momento em que são criados. Um módulo é uma interface, e uma interface só é projetada corretamente depois de se ver vários usos reais. Escrito após duas ou três duplicações assumidas, ele captura o que realmente varia e o que não varia. Escrito na primeira semelhança, ele cristaliza uma necessidade imaginária e parametriza as coisas erradas. Esta lição mostra como escrever um módulo útil e depois traz critérios concretos para decidir se você deve escrever um.
Comentários
Os comentários são alimentados pelo GitHub Discussions
Conecte-se com o GitHub para participar da discussão