Jump to content

ORM : ¿Porqué usarlo o no?


Recommended Posts

Amigos :

 

Por un tema de trabajo, estos últimos días he estado metiéndome en Java, Struts e Hibernate. Hasta la fecha no había tenido aprendizaje en ORM: La verdad no me había interesado mucho, pero me llamó la atención de que en lugar donde estoy se utiliza bastante (A decisión de un programador).

 

El tema es el siguiente: Un día, mientras este colega me hacía la inducción a determinado sistema con esta tecnología, me mencionó sobre las bondades de usar ORM en las aplicaciones. Si bien yo había escuchado al respecto, le mencioné que tenía dudas sobre la utilidad de usar ORM. Esto, porque un antiguo Jefe de Proyectos (Sumado a lo que alguna vez me explicaron en la Universidad) me mencionó la importancia de tener las capas separadas. Es decir: Todas las operaciones de base de datos se debieran hacer allí, mediante procedimientos almacenados, triggers y etc. Así, además de que la aplicación quede "mas liviana" en sí el código se preocupa sólo de actuar como interface de presentación y validación. Por otro lado, el ORM según veo permite abstraerse de la base de datos, y utilizar su contenido como un objeto.

 

¿Es util usar ORM? ¿No lo es? ¿Porqué debería inyectarlo en mi ADN?

 

Saludos y gracias por los comentarios.

Link to comment
Share on other sites

Un ORM es una abstracción de la base de datos, lo que en ningún caso significa que debas perder la separación de capas, el ORM es parte de la Infraestructura de la aplicación. vale decir, como lo es una clase que lee un excel, una librería de sockets, etc... en palabras simple, en tu capa de Datos, utilizas el ORM, NO EN OTRO SITIO. también, aunque hay mucha discusión en el tema, algunos aconsejan utilizar un patrón Repository para incluso abstraer el ORM y así poder cambiar la versión o completamente éste sin afectar las capas superiores. ésto último, en arquitectura de software, se encuentra dentro dentro de los principios SOLID, y se le llama "Principio de sustitución de Liskov", el cual nos indica qué: la noción de que los “objetos de un programa" deberían ser reemplazables por instancias de sus subtipos sin alterar el correcto funcionamiento del programa”.

 

Saludos.

 

 

Edited by Siu
Link to comment
Share on other sites

No voy a hablar en términos técnicos...

 

De todas maneras ORM o cualquier técnica que permita "modularizar" tu aplicación. La "modularización" (o el término que quieras ponerle) entrega a tu aplicación la capacidad de ser flexible en el tiempo (sustentable) y el proceso de actualización/mejora de los componentes del sistema se realiza de manera más centralizada y eficiente.

 

Este tipo de técnicas te permiten separar cada uno de los componentes principales de tu aplicación; digamos capa de presentación, capa de datos y middleware. Esto permite por ejemplo, cambiar con un menor impacto, cualquiera de estas 3 componentes... Es decir, puedes cambiar de SQL Server a Oracle modificando 2 de las 3 capas...

 

Ahora... yo no soy muy amigo de utilizar componentes o paquetes fabricados (frameworks)... Soy más de hacer mi propio framework aunque signifique "inventar la rueda denuevo"... Como todo, tiene sus ventajas y desventajas...

 

Estas técnicas son súper útiles cuando los sistemas son muy grandes o se van a desarrollar progresivamente...

 

SAlu2.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...