Speedment, un ORM para Java

Speedment es un ORM para Java que no es muy conocido pero debería serlo ya que es un firme candidato para plantar cara a los más conocidos ORMs como son Hibernate y jOOQ.

El objetivo principal de esta herramienta es aprovechar al máximo los streams de Java 8 para escribir código que extraiga información de la base de datos. Esto trae consigo muchas ventajas, la principal es que no hay necesidad de conocer una nueva API como la de JPA.

El uso es terriblemente sencillo: Lanzando un goal de maven ejecuta un entorno gráfico desde el que se configura el acceso a la base de datos y Speedment genera todas las clases Java a partir del esquema. A partir de este punto, sólo es necesario manipular los streams para obtener los datos dentro de los objetos que ha generado automáticamente Speedment.

mainscreen

La puesta en marcha es rapidísima y el uso de Java para escribir consultas a la base de datos ayuda a no perder horas depurando SQL erróneo y permite aprovechar la asistencia sobre el código Java del propio IDE.

En cuanto a buenas prácticas, algo que valoro mucho es evitar diseminar la lógica de negocio en diferentes lugares: El modelo de dominio, la base de datos y la capa de acceso a la base de datos y lo que va de la mano: Diseminar la lógica de negocio entre diferentes tecnologías (lo que generalmente requiere más de una persona para resolver un bug). Speedment como ORM ayuda a evitar estos males, permitiendo que la lógica de negocio esté en un sólo lugar y se manejen sólo con streams.

¿Y si no queremos tener el modelo de negocio inundado de dependencias en forma de anotaciones? ¿Y si no queremos tener un ORM que haga magia y nos cueste arreglarla 2 días cada vez que se rompe? ¿Y si jugamos a tener un modelo de acceso a base de datos bien diferenciado del modelo de negocio?

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s