en Programación, Ruby

Scaffolding – Utilizar o no herramientas

Primero que nada, te agradezco a ti que pasas por este abandonado blog. También quisiera aclarar que esto que escribiré acerca del scaffolding es una opinión totalmente personal, apoyada debido a la poca experiencia con la cuento, y que nace de una charla que sostuve con unos colegas, así que realmente me gustaría leer sus comentarios al respecto.

Bien, repasemos de que estamos hablando, el scaffolding es una técnica utilizada por la gran mayoría de frameworks MVC para designar la construcción automática de aplicaciones, basándose en el esquema de la base de datos. Técnica la cual tengo entendido, se volvió popular gracias a Ruby on Rails , y ya que lo menciono, este será el framework designado para los ejemplos. Entonces podemos resumir qué el scaffolding nos permite tener un CRUD rápidamente.

Logo Rails Scaffolding

Logo Rails

Supongamos que estamos desarrollando un blog, actualmente sólo contamos con el modelo Article, y nos topamos con la necesidad de añadir un nuevo modelo para almacenar los comentarios, tendríamos que escribir el siguiente comando:

bin/rails generate model Comment commenter:string body:text article:references

Como resultado del siguiente comando, se generarán cuatro archivos, el primero de ellos será la migración para crear la tabla comments en la base de datos, almacenado dentro de db/migrate/nombreArchivo, cuyo nombre se compone de la siguiente forma timestamp_create_comments.rb Luego podremos encontrar el modelo Comment en app/models/comment.rb. También encontramos los tests del modelo en test/models/comment_test.rb y dentro de test/fixtures/comments.yml se generarán comentarios de prueba para los tests.

Luego de esto debemos generarán un controlador para trabajar con el modelo que acabamos de crear, y aplicar los cambios a la base de datos, lo cual lograríamos con los siguientes comandos.

bin/rails generate controller Comments
bin/rake db:migrate

Si lo sé, con Rails es muy sencillo de llevar estas tareas a cabo. Sin embargo, con el scaffold podríamos realizarlo más sencillo todavía. bastaría con hacer algo como:


bin/rails generate scaffold Comments commenter:string body:text article:references

bin/rake db:migrate

Este comando es igual a crear un modelo, ya que de igual manera creará la migración correspondiente y el modelo con sus atributos, Pero, además va a crear por nosotros el controlador con los métodos correspondientes (index, show, new, create, edit, update y destroy) y los archivos de pruebas. Vaya que es más sencillo ¿no lo creen?

Realmente sí, pero en lo personal, y aquí viene mi opinión, esto no sirve si no se conoce como funciona el framework. Pienso que antes de utilizar este tipo de magia herramientas, se debe conocer la estructura de lo que estás utilizando, conocer sus bases, hacerlo manual, para que, en el caso de que el scaffolding llegué a hacer algo que no esperabas, puedas solventarlo sin la necesidad de entrar en pánico.

Bien, creo que por ahora termino así, me gustaría mucho leer sus comentarios al respecto. Saludos.

Deja un comentario

  1. Creo que , como todas las cosas depende mucho de lo que hagas, en mi caso hago sistema administrativo, por lo que el sccafolding es un buen punto de partida, como también la opción de modificar o generara el generador de la vista. Esto último cuando ves que cada ves haces las mismas modificaciones al código previamente generado.

    • Hola, gracias por pasar por el blog.

      Tienes mucha razón, también desarrollo sistemas administrativos, y te puedo decir que los scaffoldings son de mucha utilidad, pero como hice ver en los últimos párrafos de la entrada, esto es conveniente utilizarlo cuando ya sé tiene conocimiento de lo que se está haciendo “tras banbalinas”.

      Gracias y espero sigas leyendo el blog.
      Saludos.