Skip to content

Acoplamento de Fornecedor (Vendor Coupling)

ID: vendor_coupling | Gravidade: Medium (default)

Identifica módulos que estão muito fortemente acoplados a uma biblioteca ou framework externo específico.

Por que isso é um smell

Se você decidir trocar a biblioteca no futuro, terá que mudar o código em muitos lugares. Também torna os testes mais difíceis porque você tem que simular (mock) a biblioteca externa em todos os lugares.

Como corrigir

Use o Padrão Adapter. Crie uma interface em seu domínio e implemente-a usando a biblioteca externa. O restante do seu código deve depender apenas da sua interface.

Configuração

yaml
rules:
  vendor_coupling:
    severity: medium
    max_files_per_package: 10
    ignore_packages:
      - 'lodash'
      - 'rxjs'
      - '@nestjs/*'

Opções

  • max_files_per_package (padrão: 10): O número máximo de arquivos que podem importar um pacote específico antes que um smell seja relatado.
  • ignore_packages: Uma lista de nomes de pacotes ou padrões glob para ignorar.

Released under the MIT License.