You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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
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
The text was updated successfully, but these errors were encountered:
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
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
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:
get-schooling-registrations-csv-template.js
)create-lcms-release.js
Voilà une première analyse:
code-utils.js
) n'appartiennent pas vraiment à l'infrastructure: soit les copier, soit les déplacer dans un dossier partagéThe text was updated successfully, but these errors were encountered: