Temporal Coupling
Quando coisas só funcionam em uma ordem específica
Dependências escondidas na ordem de execução.
Explicando como se você tivesse 5 anos
Agora sim! 🎉
É como ter que colocar o sapato ANTES da meia. Não faz sentido! As coisas devem poder acontecer na ordem que fizer mais sentido.
Por que isso é uma Red Flag?
Atenção ao problema! ⚡
Quando métodos devem ser chamados em ordem específica mas nada no código garante isso, surgem bugs sutis e difíceis de debugar. Indica API mal projetada onde restrições não são expressas no tipo. A oportunidade está em redesenhar APIs para tornar estados inválidos irrepresentáveis, usando builders, objetos imutáveis, ou máquinas de estado explícitas.
Para que serve
Identificar e eliminar dependências ocultas na ordem de execução.
Explicação Detalhada
Temporal Coupling acontece quando métodos ou funções devem ser chamados em uma ordem específica, mas essa restrição não é óbvia no código. Exemplo: você tem que chamar `connect()` antes de `send()`, mas nada no código impede de chamar na ordem errada. Isso causa bugs sutis. Soluções: usar builder patterns, fazer objetos imutáveis que já nascem válidos, ou redesenhar a API para tornar a ordem implícita.
História
Steve McConnell discutiu este conceito em "Code Complete". Ele observou que quando a ordem de chamadas importa mas não é explícita, bugs surgem facilmente.
Quem Inventou
Steve McConnell
Ano: 1993
Compartilhar
Explicando como se você tivesse 5 anos
Agora sim! 🎉
É como ter que colocar o sapato ANTES da meia. Não faz sentido! As coisas devem poder acontecer na ordem que fizer mais sentido.
Por que isso é uma Red Flag?
Atenção ao problema! ⚡
Quando métodos devem ser chamados em ordem específica mas nada no código garante isso, surgem bugs sutis e difíceis de debugar. Indica API mal projetada onde restrições não são expressas no tipo. A oportunidade está em redesenhar APIs para tornar estados inválidos irrepresentáveis, usando builders, objetos imutáveis, ou máquinas de estado explícitas.
História
Steve McConnell discutiu este conceito em "Code Complete". Ele observou que quando a ordem de chamadas importa mas não é explícita, bugs surgem facilmente.
Quem Inventou
Steve McConnell
Ano: 1993
Para que serve
Identificar e eliminar dependências ocultas na ordem de execução.
Explicação Detalhada
Temporal Coupling acontece quando métodos ou funções devem ser chamados em uma ordem específica, mas essa restrição não é óbvia no código. Exemplo: você tem que chamar `connect()` antes de `send()`, mas nada no código impede de chamar na ordem errada. Isso causa bugs sutis. Soluções: usar builder patterns, fazer objetos imutáveis que já nascem válidos, ou redesenhar a API para tornar a ordem implícita.