Estructurando bien un proyecto de Angular


#1

Hola, muy buenos días y feliz año. Soy nueva en esto. Unos amigos y yo estamos empezando un proyecto bastante grande con Angular. Nuestras primeras dudas surgieron a la hora de estructurar el proyecto, creemos que ya tenemos una estructura más o menos adecuada. Tenemos una carpeta core, otra por cada gran entidad que participa en la app (clinica, admin, profesional,…) y otra carpeta shared (en lineas muy generales). Sin embargo, estamos teniendo varios problemas.
Por ejemplo, dentro de cada componente, por ejemplo Profesional. Tenemos además del css, html y ts, tenemos un routing y un module. Pero claro, sucede algo y es que dentro de Profesional, tenemos dos carpetas: misDatos y gestion. En Misdatos está el componente Misdatos pero no habiamos pensado en añadirle un module. De tal manera que pudiésemos hacer los imports necesarios para misdatos y gestion desde o bien el componente del profesional o su module (No nos funciona). No tenemos idea de si realmente lo estamos haciendo bien y queremos realiza buenas practicas.

Si alguien nos puede echar una mano, se lo agradecemos. mil gracias.


#2

No hace falta crear un module por cada componente.

Un «module» es un bloque a importar y puede (y suele) contener varios componentes. Entonces, por ejemplo, podrías hacer que todos los componentes de Profesional estén contenidos en dicho módulo.

Es más, incluso podéis crear un único módulo global que contenga todo lo cual para proyectos pequeños es bastante cómodo, pero te limitará la después poder crear «lazy modules» después.


#3

Mi pregunta más concretamente la he dejado en Stack Over Flow, a ver si me puedes echar un cable.


#4

Hola @blanca_vp, @MiguelAngelLV!

En principio creo que se están “mezclando” términos (“dentro de cada componente … tenemos un routing y un module”)
Como bien indica @MiguelAngelLV los módulos son “simplemente” agrupaciones. Lo normal es tener tantos módulos como features tengas y además un módulo Shared (o Utils) y otro Core (y el AppModule). En el primer link que os dejo lo explica perfectamente.

Si quieres usar un servicio (declarado como singleton (providedIn: ‘root’)) en un componente, solo tienes que importarlo.

Os dejo un par de links que me parecen muy interesantes:

Saludos!


#5

Este tema se cerró automáticamente 10 días después del último post. No se permiten nuevas respuestas.