Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Le domaine référence directement l'infrastructure dans certains cas. #4074

Open
octo-topi opened this issue Feb 10, 2022 · 0 comments
Open

Comments

@octo-topi
Copy link
Contributor

octo-topi commented Feb 10, 2022

Afin d'isoler le domaine des détails d'implémentation (Clean Architecture), le domaine doit faire référence à l'infrastructure de manière indirecte (injection de dépendances via les argument du use-case).

Il ne devrait donc pas y avoir d'import direct dans le use-case

require('infrastructure/***

Il est possible de le contrôler via la règle eslint node/no-restricted-require

Il existe une solution encore plus explicite avec ce plugin d'architecture

Après application de cette règle (voir cette branche), on constate:

  • l'utilisation du logger (beaucoup de cas)
  • l'utilisation de serializers (quelques cas, exemple get-schooling-registrations-csv-template.js)
  • l'utilisation d'utilitaires (quelques cas)
  • l'utilisation de repositoires (quelques cas, exemple create-lcms-release.js

Voilà une première analyse:

  • le logger pourrait être injecté, mais il ne l'est jamais. Si cela est voulu, le mentionner dans un ADR et ajouter une exception
  • les serializers sont en général utilisés dans le controller, mais sont parfois utilisés lorsque le use-case manipule explicitement des fichiers (ex: ODS, CSV). Voir si la notion de use-case a un sens dans cette situation, et envisager de tout déplacer dans le controller
  • les utilitaires (ex: code-utils.js) n'appartiennent pas vraiment à l'infrastructure: soit les copier, soit les déplacer dans un dossier partagé
  • les use-case faisant appel au repositories directement peuvent êre modifiés
@octo-topi octo-topi changed the title Le domaine référence difrectement l'infrastructure dans certains cas Le domaine référence directement l'infrastructure dans certains cas. Feb 10, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant