interface User {
name: string;
age: number;
role: 'admin' | 'user';
}
function saveUser(user: User) {
// ...write to DB
}
Isso é um pouco melhor. O chamador precisa entender ou descobrir apenas uma coisa, o User interface. Não há ordem de parâmetros com que se preocupar e a noção de isAdmin é muito mais claro (e expansível) como role.
A Page-Jones criou uma taxonomia inteira de conarcado para descrever esses tipos de relacionamentos de código e nos ajudar a gerenciá-los. A ConneScence também nos ajuda a pensar em duas dimensões cruciais: quão forte é o acoplamento e a distância que as peças acopladas vivem. O acoplamento entre duas rotinas no mesmo objeto é normal. Mas quando o acoplamento abrange módulos ou serviços, isso se torna um problema sério.
A ConneScence oferece um vocabulário mais nítido para descrever o acoplamento e uma nova maneira de analisar seu código. Na próxima semana, mergulharemos na taxonomia e começaremos a nomear os diferentes tipos de acoplamento com os quais você já está vivendo.
