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.