Mirth y ORM (object relational mapping) JavaScript y TypeScript ORMs para Mirth Connect

 ORM (object relational mapping)  Mapeo relacional de objetos


El mapeo relacional de objetos puede parecer complejo, pero su propósito es facilitarle la vida como programador. Para obtener datos de una base de datos, debe escribir una consulta. ¿Eso significa que tienes que aprender SQL? Bueno no. El mapeo relacional de objetos le permite escribir consultas en el idioma que elija.

El mapeo relacional de objetos es una técnica para convertir el resultado de una consulta de base de datos en instancias de clase de entidad. Una entidad es simplemente un contenedor de objetos para una tabla de base de datos. Contiene atributos que se asignan a columnas de una tabla de base de datos. Las instancias de entidad tienen formas de realizar operaciones CRUD y tienen soporte para funciones adicionales que contienen lógica personalizada como validación y encriptación de datos.

Si está construyendo un proyecto pequeño, no es necesario instalar una biblioteca ORM. El uso de sentencias SQL para impulsar su aplicación debería ser suficiente. Un ORM es bastante beneficioso para proyectos de mediana a gran escala que obtienen datos de cientos de tablas de bases de datos. En tal situación, necesita un marco que le permita operar y mantener la capa de datos de su aplicación de una manera consistente y predecible.

Las clases de entidad son los componentes básicos de las aplicaciones comerciales, ya que están diseñadas para encapsular la lógica para implementar reglas comerciales. Se define una regla comercial para garantizar que un proceso automatizado solo se ejecute dentro de los límites de una política comercial. Algunos ejemplos de reglas comerciales incluyen:

  • descuentos para clientes
  • aprobaciones de préstamos
  • comisiones de ventas
  • cálculos de envío e impuestos

Bibliotecas ORM

El mapeo relacional de objetos se realiza comúnmente con la ayuda de una biblioteca. El término ORM se refiere más comúnmente a una biblioteca ORM real, un mapeador relacional de objetos, que realiza el trabajo de mapeo relacional de objetos por usted.


A menudo, las reglas comerciales requieren la ejecución de varias sentencias SQL que deben ejecutarse en lotes. Si una sola instrucción SQL falla, puede dejar la base de datos en un estado inconsistente. La mayoría de las bibliotecas ORM admiten una función conocida como Transacciones, que evita que sucedan incidentes de este tipo. Si una sentencia SQL no se ejecuta dentro del contexto de una transacción, todas las demás sentencias SQL que se han ejecutado con éxito dentro de ese lote se revierten mediante una operación conocida como reversión.

Por lo tanto, el uso de una biblioteca ORM para construir su capa de datos ayuda a garantizar que la base de datos permanezca siempre en un estado consistente. Las bibliotecas ORM a menudo contienen muchas más características esenciales, como:

  • constructores de consultas
  • scripts de migración
  • una herramienta CLI para generar código repetitivo
  • una función de inicialización para rellenar previamente tablas con datos de prueba

 Bibliotecas ORM Pasos:

  • instalación y configuración inicial
  • operaciones CRUD básicas
  • operaciones de consulta avanzada

También incluí información importante, como las fechas de lanzamiento, la cantidad de usuarios y vínculos a la documentación, y los canales de asistencia, si están disponibles. También hablaré sobre cuestiones importantes relacionadas con el rendimiento de las consultas, el mantenimiento de la biblioteca y la filosofía de la arquitectura que debe tener en cuenta al tomar una decisión.

Ordené la lista según la fecha de lanzamiento, desde la más antigua hasta la más reciente. He dividido la lista en dos secciones según el lenguaje principal admitido: JavaScript y TypeScript.

Antes de comenzar nuestra evaluación, primero echemos un vistazo a Knex.js, un popular Generador de consultas SQL que ya viene integrado con varias bibliotecas ORM enumeradas aquí. Knex.js es muy flexible y, a menudo, funciona mejor que algunas de las bibliotecas ORM que tienen su propia implementación incorporada de un generador de consultas. Considere esto como una ventaja al elegir una biblioteca ORM que use Knex.js como base.

Tenemos disponibles las siguientes herramientas:

Para concluir, me gustaría discutir brevemente el caso en contra del uso de bibliotecas ORM en su proyecto. Los principales argumentos incluyen:


consultas voluminosas e ineficientes

frustraciones usando una biblioteca

problemas de migración: mantener sincronizadas las clases de entidad y el esquema de la base de datos

pérdida de seguridad de tipos cuando se utiliza la opción SQL sin formato

Puede leer todos los argumentos en contra del uso de bibliotecas ORM aquí y aquí.


Después de haber examinado todas las bibliotecas ORM de JavaScript y TypeScript actuales, debe tener en cuenta que cada una difiere en su implementación. La mayoría de los argumentos en contra de las bibliotecas ORM se han resuelto con las más nuevas, como Object.js y Prisma. Si decide no utilizar una biblioteca ORM, tendrá que decidir las herramientas y bibliotecas individuales que componen su pila de capas de datos.


Elegir un ORM para su proyecto es la mejor solución por esta única razón: la documentación.


Como desarrolladores, somos bastante malos para documentar nuestro propio código. Si tuviéramos que implementar una solución personalizada, o implementar una biblioteca que no es muy conocida, los futuros mantenedores tendrían dificultades para mantener su aplicación actualizada con sus necesidades comerciales.


Sin embargo, si usa una biblioteca ORM bien documentada, será mucho más fácil para ellos trabajar en su aplicación mucho después de que haya dejado el proyecto. Esto se debe a que los ORM inculcan buenas prácticas de código, como arquitectura y patrones como Data Mapper. Y aunque eso puede introducir una curva de aprendizaje, es mejor a largo plazo.


Espero haberle proporcionado información útil que pueda ayudarlo a evaluar una biblioteca ORM para su proyecto. Si desea una recomendación, elija una biblioteca ORM de TypeScript que sea más adecuada para un proyecto de clase empresarial.

Referencias

https://www.devdays.com/june-2021/

https://www.sitepoint.com/javascript-typescript-orms/

Comentarios

Entradas más populares de este blog

¿Cómo buscar tweets antiguos de una persona?

¿Qué es la Norma GAMP 5 y para que sirve?

¿Que tipos de Mensajes de HL7 hay?