Partie 1 : Démarrer un projet sur de bonnes bases
Partie 2 : Construire un espace membre sécurisé avec JWT
Partie 3 : Implémenter des fonctionnalités métiers
Partie 4 : Bonus

2.3. CoreModule ou SharedModule ?

Il y a d’éternels débats sur la toile, pour savoir où placer ses composants ou ses services. Les deux modules que nous venons de voir permettent de répondre à ces questions au sein d’une architecture robuste et réfléchie. Mais parfois, on ne sait pas si un élément doit être mis dans le CoreModule ou dans le SharedModule.

Je pourrai vous donner la réponse académique. Mais cela vous donnera mal à la tête. Plutôt que vos nerfs lâchent avant que l’on ait écrit une seule ligne de code, je vous propose une version simplifiée de la répartition de vos éléments, afin de passer à la suite plus rapidement.

  • Les services vont dans le CoreModule.
  • Les composants, les directives et les pipes vont dans le SharedModule.
  • Un module qui exporte au moins un composant, une directive ou un pipe doit être placé dans le SharedModule. Par exemple, le CommonModule doit faire partie du SharedModule, car il exporte entre autres les directives ngIf et ngFor.
  • Sinon, ce module doit être placé dans le CoreModule. Par exemple, le HttpClientModule,car il n’exporte que des services.

Bien, avec ces quelques principes en tête, vous comprendrez mieux les choix que l’on fera par la suite concernant la répartition entre ces deux modules. De toute façon, je justifierai chaque décision prise lors de nos développements, le moment venu.

Je crois que vous en savez assez. On va tout de suite à l’implémentation de nos modules ! Rappelez-vous, l’utilisation du CoreModule et du SharedModule sont des recommandations, pas des obligations. Il s’agit simplement de bonnes pratiques éprouvées et recommandées par l’équipe d’Angular, mais vous êtes libre d’appliquer ou non leurs propositions. Vous pouvez très bien développer un module CoreModule dédié à la gestion des utilisateurs. Ce serait peut-être idiot de faire cela, mais ça ne lèvera pas d’erreurs dans votre application. Entre nous, je ne peux que vous recommander de respecter les conseils des ingénieurs qui ont développé notre framework préféré. Cela vous évite de réfléchir à des choses qui ont déjà été pensées mille fois, et de vous prendre la tête inutilement !