En este tutorial, te explicaré cómo deberías estructurar tus proyectos en Angular 17 para mantenerlos organizados y fáciles de mantener. Una buena estructura de proyecto es fundamental para que un proyecto sea escalable, mantenible y fácil de entender por otros desarrolladores.
- Crear un proyecto en Angular 17: Para empezar, puedes crear un nuevo proyecto en Angular 17 utilizando el siguiente comando en la terminal:
ng new nombre-del-proyecto
- Dividir tu proyecto en módulos: Una buena práctica es dividir tu proyecto en módulos que agrupen funcionalidades relacionadas. Por ejemplo, podrías tener un módulo para la autenticación, otro para la gestión de usuarios, etc.
Para crear un nuevo módulo en Angular, puedes utilizar el siguiente comando:
ng generate module nombre-del-modulo
- Estructura de carpetas: Es importante tener una estructura de carpetas clara y coherente en tu proyecto. Por ejemplo, podrías tener una carpeta para cada módulo y dentro de ellas subcarpetas para los componentes, servicios, pipes, etc.
Una estructura común de carpetas en Angular podría ser la siguiente:
- src
- app
- modules
- auth
- components
- services
- users
- components
- services
- shared
- components
- services
- core
- guards
- interceptors
- services
- assets
- environments
- Crear componentes, servicios y pipes: Para cada funcionalidad de tu aplicación, es recomendable crear componentes, servicios y pipes por separado. Los componentes se encargan de la presentación de datos, los servicios de la lógica de negocio y los pipes de la transformación de datos.
Puedes utilizar los siguientes comandos para generar componentes, servicios y pipes en Angular:
ng generate component nombre-del-componente
ng generate service nombre-del-servicio
ng generate pipe nombre-del-pipe
- Implementar lazy loading: Una técnica muy útil en Angular es el lazy loading, que consiste en cargar los módulos de forma perezosa cuando son necesarios. Esto ayuda a mejorar el rendimiento de la aplicación, ya que no carga todos los módulos al inicio.
Para implementar lazy loading en Angular, puedes utilizar la propiedad loadChildren
en las rutas de tu aplicación. Por ejemplo:
{
path: 'users',
loadChildren: () => import('./modules/users/users.module').then(m => m.UsersModule)
}
-
Crear servicios reutilizables: Para mantener tu código más limpio y reutilizable, es recomendable crear servicios que se encarguen de la lógica de negocio y que se puedan utilizar en múltiples componentes. Puedes utilizar servicios para realizar peticiones HTTP, gestionar la autenticación, etc.
- Utilizar interceptores HTTP: Los interceptores HTTP son una característica de Angular que te permite modificar las peticiones y respuestas HTTP antes de ser enviadas o recibidas por el servidor. Puedes utilizar interceptores para añadir cabeceras a las peticiones, gestionar errores, etc.
Para crear un interceptor HTTP en Angular, puedes seguir los siguientes pasos:
- Crear un servicio que implemente la interfaz
HttpInterceptor
y que tenga el métodointercept
para modificar las peticiones y respuestas. - Registrar el interceptor en el módulo de tu aplicación utilizando el proveedor
HTTP_INTERCEPTORS
.
Conclusión:
Una estructura de proyecto bien organizada es fundamental para mantener un código limpio, escalable y fácil de mantener. En este tutorial, te he explicado cómo deberías estructurar tus proyectos en Angular 17, dividiendo tu código en módulos, utilizando una estructura de carpetas coherente, creando componentes, servicios y pipes por separado, implementando lazy loading, creando servicios reutilizables y utilizando interceptores HTTP. ¡Espero que esta guía te haya sido útil y te ayude a mejorar la calidad de tus proyectos en Angular!
👉 ¡En Garaje, seguimos creciendo! Conoce nuestras vacantes actuales de tecnología: https://bit.ly/talento-tech-GDI
Por qué ven tan necesario usar Angular o React, si esas funcionalidades se pueden hacer con javascript puro, en la estructura index.html, style.css y la carpeta con los javascript. Quiero entenderlos, para que Angular o React?
Muy bien explicado, esa duda tenía con el nuevo angular 17👍
Justamente estaba luchando para crear una estructura que pudiera ser organizada y escalable, tu video es una joya!!!
¿Cómo puedo enrutar el CSS y el JS??
muy bueno, gracias.
Hola, que tipo de arquitectura es esta? como se llama?
Iluminenme porfa, como podria navegar en una misma página entre secciones, digamos abc#home, abc#about, etc. Se agradece de antemano😢
Me pareces un dev brutal, pero ese slogan de si funciona no lo toques me parece muy meeee…. (con lo que gozo yo de las refactorizaciones jejeje)
Yo uso module core y shared.
Cómo dijiste, que no hubo un cambio tan grande con dejar de usar modulos.
Eres un crack, un ejemplo claro y conciso que se puede aplicar en cualquier proyecto.. y para cuando el curso de cero a experto con angular? xD
Tremendo el video. Muy bueno y muy claro. ¿Cómo lo adaptarías a Clean Architecture? ¿La carpeta de Core es equivalent a la capa de Aplicación en ese diseño de arquitectura?
muy bueno, un tutorial creando tu arquitectura, para conocer como crear el archivo routes
Gracias Master
llegue, me dijiste exactamente lo que tenia que saber, y me fui.
VIDEAZO AMIGX ♥
Excelente aporte 🎉🎉🎉
Excelente, es un muy buena estructura
Excelente, muchas gracias
Excelente explicación y recomendaciones
Hola, tal vez un tutorial para implementar clean architecture?