El andamiaje , tal como se utiliza en informática , se refiere a una de dos técnicas:
- Generación de código
- Es una técnica relacionada con el acceso a bases de datos en algunos frameworks modelo-vista-controlador .
- Generación de proyectos
- Es una técnica compatible con diversas herramientas de programación.
Generación de código
En el desarrollo de software, el andamiaje se refiere a las técnicas de generación de código automatizada que producen rápidamente la estructura fundamental de las aplicaciones. Generalmente utilizado en el modelo-vista-controlador (MVC) y patrones arquitectónicos similares, el andamiaje ayuda a los desarrolladores a crear rápidamente código para funciones comunes de la aplicación e interacciones de datos, en particular operaciones CRUD .
El andamiaje evolucionó a partir de herramientas de desarrollo de software anteriores, como el CASE Generator de Oracle y otras herramientas de cuarta generación (4GL) , diseñadas para simplificar la creación de aplicaciones robustas basadas en bases de datos.
Aplicaciones y marcos de trabajo
El concepto ganó gran popularidad gracias a frameworks como Ruby on Rails , conocido por su eficiente generación de estructuras MVC y operaciones CRUD. Actualmente, el scaffolding es compatible con una amplia gama de frameworks de desarrollo en diferentes lenguajes de programación, entre los que se incluyen:
- Ruby on Rails
- Andamiaje popularizado para estructuras MVC.
- Django
- Ofrece una interfaz de administración integrada y una estructura basada en modelos.
- Express Framework (JavaScript)
- Estructura para el desarrollo rápido de API REST.
- Play Framework (Java/Scala)
- Facilita la configuración rápida del proyecto y la estructura MVC.
- Laravel (PHP)
- Utiliza la interfaz de línea de comandos Artisan para generar componentes MVC.
- Symfony (PHP)
- Ofrece opciones de andamiaje flexibles mediante paquetes para creadores.
- CakePHP (PHP)
- Ofrece una amplia capacidad de andamiaje para MVC.
- ASP.NET MVC (.NET)
- Incluye herramientas de andamiaje integradas para controladores y vistas.
- Spring Roo (Java)
- Desarrollo rápido mediante una amplia estructura de apoyo.
- Griales (Groovy)
- Andamiaje dinámico y prototipado rápido.
- Angular (JavaScript)
- Utiliza Angular CLI para la creación de componentes y servicios.
- React.js (JavaScript)
- Admite la creación de estructuras mediante herramientas como Create React App.
Andamiaje en tiempo de ejecución frente a andamiaje en tiempo de diseño
El andamiaje puede ocurrir en dos fases distintas del desarrollo de software:
- Andamiaje en la fase de diseño
- Esto ocurre durante la fase de desarrollo, generando archivos y estructuras de código que el desarrollador puede personalizar y mantener. Si bien es altamente personalizable, la creación de una estructura compleja durante la fase de diseño puede generar una gran cantidad de archivos que los desarrolladores deben gestionar y mantener manualmente.
- Andamiaje en tiempo de ejecución
- Este método genera y gestiona dinámicamente las operaciones en tiempo de ejecución, minimizando la generación manual de archivos. La generación automática de código en tiempo de ejecución simplifica la gestión, pero ofrece menos opciones de personalización y puede afectar al rendimiento de la aplicación.
Beneficios y limitaciones
El andamiaje presenta varias ventajas y desventajas:
Beneficios
- Acelera los ciclos de desarrollo.
- Estandariza las prácticas de codificación y promueve la coherencia.
- Mejora la creación rápida de prototipos y el desarrollo iterativo.
Limitaciones
- El código generado puede requerir una personalización extensa.
- Puede introducir una complejidad innecesaria en aplicaciones más pequeñas o sencillas.
- Puede reducir la comprensión que tienen los desarrolladores de las estructuras de código subyacentes.
Generación de proyectos
Los proyectos de software complejos suelen compartir ciertas convenciones sobre la estructura y los requisitos del proyecto. Por ejemplo, a menudo tienen carpetas separadas para el código fuente , los binarios y las pruebas de código , así como archivos que contienen acuerdos de licencia , notas de lanzamiento e información de contacto. Para simplificar la creación de proyectos que siguen estas convenciones, las herramientas de andamiaje pueden generarlos automáticamente al inicio de cada proyecto. Entre estas herramientas se incluyen Yeoman , Cargo y Ritchie CLI. Para proyectos .NETdotnet , la herramienta de línea de comandos incluida en el SDK de .NET se puede usar para generar nuevos proyectos.
Véase también
- Spring Roo – Herramienta de software de código abierto
- Play Framework : un framework web de código abierto escrito en Scala.
- Apache Tapestry : marco de trabajo de código abierto para aplicaciones web.
- Symfony : framework de aplicaciones web PHP para aplicaciones MVC.
- Laravel : framework de código abierto para aplicaciones web en PHP.
- Phalcon PHP : marco web PHP de código abierto
- Catalyst : marco de trabajo de código abierto para aplicaciones web.
- Mojolicious – Marco de trabajo para aplicaciones de Internet
- ASP.NET Dynamic Data – Marco de programación web
- Ruby on Rails : un framework de código abierto para aplicaciones web del lado del servidor.
- Yii – Framework para aplicaciones web
- CodeIgniter : marco de desarrollo web de software libre y de código abierto.
- CakePHP – Framework web de código abierto en PHP
- MonoRail – Marco de trabajo de código abierto para aplicaciones web
- FuelPHP – Framework de código abierto para aplicaciones web
- Django (framework web) – Framework web de Python
- Plataforma OutSystems (PaaS) – Empresa de software
- Hacendado
Referencias
Enlaces externos
- Cómo empezar a trabajar rápidamente con Scaffolding , Referencia del método Scaffolding. Enlace obsoleto archivado el 7 de abril de 2005 en archive.today (De rubyonrails.org).
- Rails Scaffolder's Toolbox: una interfaz gráfica de usuario para los generadores de Rails Scaffolder (aplicación solo para Mac, disponible en la Mac App Store).
- Arquitectura de software
- Programación informática
- Tipos de herramientas utilizadas en el desarrollo de software