Jese Leos

Ing en Sistemas Computacionales

Estructura de carpetas

#angular , #programacion , #blog

src/
├── app/
│   ├── core/                  # Core module: servicios singleton, interceptores, guards
│   │   ├── interceptors/
│   │   ├── guards/
│   │   ├── services/
│   │   ├── core.module.ts
│   │   └── index.ts
│   ├── shared/                # Shared module: componentes, pipes, directivas reutilizables
│   │   ├── components/
│   │   ├── directives/
│   │   ├── pipes/
│   │   ├── models/
│   │   ├── shared.module.ts
│   │   └── index.ts
│   ├── features/              # Módulos de funcionalidad (lazy loaded)
│   │   ├── feature1/
│   │   │   ├── components/
│   │   │   ├── pages/
│   │   │   ├── services/
│   │   │   ├── feature1-routing.module.ts
│   │   │   └── feature1.module.ts
│   │   ├── feature2/
│   │   │   └── ...
│   ├── layout/                # Componentes de layout (navbar, sidebar, footer)
│   │   ├── header/
│   │   ├── sidebar/
│   │   ├── footer/
│   │   └── layout.module.ts
│   ├── state/                 # Gestión de estado global (NgRx, NGXS, etc.)
│   │   ├── actions/
│   │   ├── reducers/
│   │   ├── selectors/
│   │   ├── effects/
│   │   └── index.ts
│   ├── app-routing.module.ts
│   ├── app.component.ts
│   ├── app.module.ts
│   └── main.ts
├── assets/                    # Imágenes, fuentes, etc.
├── environments/              # Configuración para diferentes entornos
│   ├── environment.ts
│   ├── environment.prod.ts
├── styles/                    # SCSS/CSS globales
│   ├── themes/
│   ├── variables.scss
│   └── styles.scss
├── index.html
└── 

Explicación de los módulos principales

1. Core Module (core/)

  • Singleton services (autenticación, API, interceptores HTTP, guards).
  • Solo debe importarse en AppModule.
  • Ejemplo: servicios de logging, guards, interceptores, configuración global.

2. Shared Module (shared/)

  • Componentes reutilizables, pipes, directivas, modelos.
  • Puede ser importado en cualquier módulo.
  • Ejemplo: botones, tablas, componentes de UI pequeños, pipes personalizados.

3. Features Modules (features/)

  • Un módulo por cada área funcional (ej: usuarios, productos, pedidos).
  • Permite lazy loading y separación de responsabilidades.
  • Cada feature tiene subcarpetas para componentes, páginas, servicios, etc.

4. Layout Module (layout/)

  • Componentes de estructura general de la aplicación (header, sidebar, footer).
  • Útil para layouts dinámicos o diferentes tipos de navegación.

5. State Management (state/)

  • Usado si implementas NgRx, NGXS, Akita, etc.
  • Acciones, reducers, efectos, selectores para manejar el estado global de la app.

6. Environments

  • Variables de entorno para desarrollo, producción, etc.

7. Styles

  • Temas, variables SCSS, estilos globales.