Cuando desarrollamos aplicaciones con el framework angular.js tenemos que prestar atención a la estructura de archivos.
Cuando la aplicación es medianamente grande o muy grande debemos buscar una correcta distribución de archivos, estos se pueden separar por tipo de componente (controller, directives, services, etc) o separarlos por lógica de negocio (users, system, general, autentication, etc) o en su defecto hacer un híbrido entre estas dos distribuciones.
Tipos de arquitectura de archivos
Existen dos tipos de arquitectura de distribución de archivos:
-
Arquitectura por componentes: Es más apropiado utilizarlo para aplicaciones pequeñas, para este caso se deben utilizar un archivo por cada tipo de componente:
- Controllers: Estos deben de tener toda interacción con el usuario y delegar tareas entre los diferentes servicios.
- Directives: Aquí debemos de colocar toda la lógica de componentes reutilizables para la aplicación y el manejo del dom.
- Services: En este archivo debemos tener la lógica de modelos de datos, el formato de datos y las peticiones al servicios.
- Carpeta Views: Aquí colocamos todas las vistas que necesite nuestra aplicación.
-
Arquitectura por funcionalidad: La arquitectura por lógica se debe utilizar para aplicaciones medianamente grandes, ya que nos permite colocar en carpetas por lógica del negocio o funcionalidad un componente de cada tipo, esto nos ayuda a en un futuro poder reutilizar esa funcionalidad porque debe estar aislada y ser modular.
- Angular.js - Web front-end framework.
Ejecución del script
Acompañado de este escrito tienes el archivo angular-generator.sh
, es un archivo bash de fácil ejecución.
- Paso 1: Ejecuta el archivo de la siguiente manera
sh angular-generator.sh
. - Paso 2: El programa te pedirá el nombre de la aplicación.
- Paso 3: El programa te pedirá el tipo de arquitectura de archivos.
- Paso 4.1 (Por tipo): Si eliges esta opción el programa generar los archivos y terminara.
- Paso 4.2 (Por funcionalidad): Si eliges esta opción el programa te preguntara cual es el nombre de la funcionalidad que deseas agregar.
El programa generará estructuras de archivos como la siguiente:
- Code Organization in Large AngularJS and JavaScript Applications:
- Autor del snippet: Mario Andrade @TheVansters
- Los snippets pertenecen a KamikazeLab