Circular Dependency

NestJS 🟡 Mid

Definition

Situation ou deux providers ou modules dependent mutuellement l'un de l'autre, causant une erreur de resolution. Se resout avec forwardRef.

Analogie

Comme deux personnes bloquees a une porte, chacune attendant que l'autre passe en premier.

Exemple de code

// Module A importe B, B importe A
@Module({
  imports: [forwardRef(() => ModuleB)],
})
export class ModuleA {}

Cas d'usage

Resoudre temporairement une dependance circulaire tout en planifiant un refactoring pour l'eliminer.

Anti-pattern

Accepter les dependances circulaires comme normales au lieu de repenser l'architecture.
#core#interview