El andamiaje , como se usa en computación, se refiere a una de dos técnicas: la primera es una técnica de generación de código relacionada con el acceso a la base de datos en algunos marcos modelo-vista-controlador ; el segundo es una técnica de generación de proyectos apoyada por diversas herramientas.
Codigo de GENERACION
El scaffolding es una técnica compatible con algunos marcos de modelo-vista-controlador , en la que el programador puede especificar cómo se puede utilizar la base de datos de la aplicación. El compilador o marco usa esta especificación, junto con plantillas de código predefinidas, para generar el código final que la aplicación puede usar para crear, leer, actualizar y eliminar entradas de la base de datos, tratando de manera efectiva las plantillas como un " andamio " sobre el cual construir. una aplicación más poderosa.
El andamio es una evolución de los generadores de código de base de datos de entornos de desarrollo anteriores, como el Generador CASE de Oracle y muchos otros productos de desarrollo de software cliente-servidor 4GL .
Los andamios se popularizaron gracias al marco de Ruby on Rails . Se ha adaptado a otros marcos de software, incluidos OutSystems Platform , Express Framework , Blitz.js, Play framework , Django , web2py , MonoRail , Brail, Symfony , Laravel , CodeIgniter , Yii , CakePHP , Phalcon PHP , Model-Glue , PRADO , Grails , Catalyst , Mojolicious , Seam Framework , Spring Roo , JHipster , ASP.NET Dynamic Data , KumbiaPHP y ASP.NET MVC framework's Metadata Template Helpers.
Andamios en tiempo de ejecución frente a tiempo de diseño
El andamiaje puede ocurrir en dos fases diferentes del ciclo de vida del programa : tiempo de diseño y tiempo de ejecución . El andamio de tiempo de diseño produce archivos de código que luego el programador puede modificar para personalizar la forma en que se utiliza la base de datos de la aplicación. Sin embargo, para aplicaciones a gran escala, este enfoque puede ser difícil de mantener debido a la gran cantidad de archivos producidos y al hecho de que el diseño de los archivos se corrigió en gran medida cuando se generaron o copiaron de las plantillas originales. Alternativamente, el andamio en tiempo de ejecución produce código sobre la marcha. Permite que los cambios en el diseño de las plantillas se reflejen inmediatamente en toda la aplicación. Pero modificar el diseño de las plantillas puede ser más difícil o poco práctico en el caso de los andamios de tiempo de ejecución.
Andamios en Ruby on Rails
Cuando la línea se agrega a un controlador , Rails generará automáticamente todas las interfaces de datos apropiadas en tiempo de ejecución. Dado que la API se genera sobre la marcha, el programador no puede modificar fácilmente las interfaces generadas de esta manera. Un andamio tan simple se usa a menudo para crear prototipos de aplicaciones e ingresar datos de prueba en una base de datos.scaffold :model_name
El programador también puede ejecutar un comando externo para generar el código Ruby para el andamiaje de antemano: . El script producirá archivos de código Ruby que la aplicación puede usar para interactuar con la base de datos. Es algo menos conveniente que el andamiaje dinámico, pero le da al programador la flexibilidad de modificar y personalizar las API generadas.rails generate scaffold model_name
generate
Nota: A partir de Rails 2.0, los andamios dinámicos ya no se almacenan.
Andamios del lado del servidor vs del lado del cliente
Las técnicas de andamiaje basadas en la base de datos de la aplicación generalmente involucran marcos del lado del servidor . Los frameworks web del lado del servidor comúnmente realizan operaciones directamente contra las entradas de la base de datos, y la generación de código para estas operaciones puede considerarse un andamiaje del lado del servidor . Alternativamente, el desarrollo del lado del cliente a menudo usa marcos que realizan operaciones de transporte de datos en lugar de acceder directamente a la base de datos. El enfoque del Scaffolding del lado del cliente es, por lo tanto, más en generar una plantilla de inicio para la aplicación en su conjunto, en lugar de generar código para acceder a una base de datos.
Algunos marcos web del lado del cliente, como Meteor , permiten al cliente realizar operaciones de base de datos de manera similar a los marcos del lado del servidor. En este caso, las técnicas de Scaffolding pueden ir más allá de la mera generación de una plantilla de inicio. Pueden realizar andamios en tiempo de ejecución de formularios web en el lado del Cliente para crear, leer, actualizar y eliminar entradas de la base de datos. Un ejemplo de esto lo proporciona un complemento de Meteor llamado aldeed: autoform [1] .
Generación de proyectos
Los proyectos de software complicados a menudo comparten ciertas convenciones sobre la estructura y los requisitos del proyecto. Por ejemplo, a menudo tienen carpetas separadas para código fuente , binarios y pruebas de código , así como archivos que contienen acuerdos de licencia , notas de la versión e información de contacto. Para simplificar la creación de proyectos siguiendo esas convenciones, las herramientas de "andamiaje" pueden generarlos automáticamente al comienzo de cada proyecto. Estas herramientas incluyen Yeoman , Cargo y Ritchie CLI.
Ver también
- Acelerador (productividad)
- Spring Roo
- Play Framework : marco web de código abierto escrito en Scala
- Tapiz Apache
- Symfony
- Laravel : marco de aplicación web de código abierto, escrito en PHP
- PHP de Phalcon
- Kohana
- Catalizador
- Mojolicious
- Datos dinámicos ASP.NET
- Ruby on Rails : marco de aplicación web de código abierto del lado del servidor
- Yii - marco de aplicación web
- CodeIgniter
- CakePHP - Marco web de código abierto en PHP
- Monocarril
- CombustiblePHP
- Django (marco web) - marco web Python
- Plataforma OutSystems (PaaS)
- Hacendado
enlaces externos
- Ponerse en marcha rápidamente con andamios , referencia del método de andamios (de rubyonrails.org)
- Caja de herramientas de Rails Scaffolder: una GUI para los generadores de Rails Scaffolder (aplicación solo para Mac, de la Mac App Store)