28 octubre, 2008

ORMs con Javascript

Los ORM (Mapa-objeto-relación), celebres gracias al Active Record usado por Ruby on Rails, consisten en librerías basadas en una técnica de programación para convertir datos entre el sistema de tipos utilizado en un lenguaje de programación orientado a objetos y el utilizado en una base de datos relacional.

Su función es ocultar las tablas de una base de datos relacional tras la apariencia de objetos, un sistema de acceso a los datos más natural para los programadores. Es como decir "esta clase mapea esta tabla, y los objetos de esta clase mapean las filas de esa tabla". Una de las mejoras más evidentes es ocultar las sentencias SQL del código de la aplicación.

Esto permite realizar cosas como:

JazzLegend.find_by_name('Miles Davis').albums

var katzFamily = Person.filter("lastName = ?","Katz");
katzFamily.each(function(person) {
  console.log(person.firstName);
});

var mail = Mail.retrieve(msgid);
if (!mail) mail = Mail.create({ message_id: msgid, message: body });
mail.last_read((new Date).toUTCString());
mail.drop();

2 comentarios:

Escorts dijo...

Buena idea, pero no veo la utilidad de esto.
Un saludo

alsanan dijo...

Usar un ORM oculta los detalles de la implementación que hay debajo. Como toda abstracción facilita la escritura y lectura del código y la modificación posterior.

Si no usas SQL (que es de lo que se trata), facilitas cambiar de base de datos a mitad de proyecto sin reescribir nada. Puesto que el SQL depende de cada base de datos, es fácil tener que acabar adaptando las consultas cada vez.

Además, usarías una sintaxis más propia de objetos que debería ser más común con el resto del código. Es mejor escribir
db.getPersonas()[0].nombre
en lugar de
rs= db.query('select nombre from persona'); nombre= rs.getField('nombre');

Publicar un comentario en la entrada

Últimos links en indiza.com