DataMapper en Ruby

De un tiempo para acá estoy teniendo en cuenta DataMapper, un ORM para Ruby que tiene similitudes con Active Record pero se nota que es una librería posterior por muchos detalles. De las cosas interesantes que puede hacer hay algunas muy dignas de tener en cuenta.

  • Las actualizaciones parciales, que ya se encuentran disponibles en la nueva versión de Active Record en Rails 2.1
  • Actúa contra la base de datos con inteligencia, minimizando en lo posible el número de accesos a las tablas.
  • Las búsquedas son totalmente en Ruby, con lo que no hay que hacer extraños inventos para búsquedas complejas (en ActiveRecord hay que tocar el SQL para unir varias condiciones).
  • Es explícito. Al definir la clase también definimos los campos y el tipado de éstos. En ActiveRecord a veces me siento un poco desorientado ya que las propiedades de la clase se definen al conectar con la base de datos, en DataMapper se definen explícitamente en la clase.
  • Acceso directo. Si tenemos el modelo Post podemos hacer Post[3] en lugar de Post.find(3) y otras muchas más formas de encontrar lo que buscamos.
  • Paranoia. DataMapper incluye de serie el borrado lógico al definir una propiedad como property :deleted_at, ParanoidDateTime. La realidad es que casi siempre que borramos sólo queremos marcar como borrados, y que el ORM de serie incluya esta funcionalidad nos facilita mucho el trabajo. Con ActiveRecord puede conseguirse, pero no es lo mismo

No es oro todo lo que reluce y DataMapper todavía no está completo del todo (siguen trabajando en las relaciones entre objetos y algunas cosas más) pero la verdad es que para proyectos Ruby que no sean Rails puede ser una interesante opción, sobre todo si estamos probando algo como Merb con DataMapper.

Deja un comentario

Tu dirección de correo electrónico no será publicada.